欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: AC6編譯器內嵌匯編怎么寫標識 [打印本頁]

作者: pdwdzz    時間: 2023-8-23 13:36
標題: AC6編譯器內嵌匯編怎么寫標識
__asm void delay_ntimes(unsigned int n)
{
L1
         SUBS R0,#1
         BCS L1
         BX LR
}
如上是AC5編譯器下能編譯的嵌匯編的代碼,
但是改AC6后就不知道這么改了
嘗試過如下
void delay_ntimes(unsigned int n)
{
  __asm("L1:\n\t"
        "SUBS R0,#1\n\t"
        "BCS L1\n\t"
        "BX LR"
  );
}
報錯如下:
../User/time_base.c(92): error: symbol 'L1' is already defined
  __asm("L1:\n\t"
        ^
<inline asm>(1): note: instantiated into assembly here
        L1:
        ^
其他語句都是可以的,就是L1這個跳轉用的標識符認報錯,不知道怎么寫。

作者: Hephaestus    時間: 2023-8-23 14:44
你把L1改成L11111不就可以了么???
作者: pdwdzz    時間: 2023-8-23 22:52
Hephaestus 發表于 2023-8-23 14:44
你把L1改成L11111不就可以了么???

無論改什么都一樣的,并不是如報錯說明的已經被定義。
作者: pdwdzz    時間: 2023-8-23 23:41
解決了
static void delay_ntimes(unsigned int n)
{
  __asm("L1:\n\t"
        "SUBS R0,#1\n\t"
        "BCS L1\n\t"
        "BX LR"
  );
}
這樣就可以了,原因未知




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1