我使用armv8程序集编写程序。问题发生在我尝试从键盘扫描字符的位置。我有两个输入调用。第一个扫描整数,第二个扫描一个字符。当我扫描大于255的数字时,我无法正确读取该字符。我正在使用以下命令进行扫描:
.first:
.string "%d"
.second:
.string " %c"
main:
.LFB0:
add x1, x29, 28
adrp x0, .LC1
add x0, x0, :lo12:.LC1
bl scanf //Scanning the first integer number from keyboard
ldr w20, [x29, 28]
add x1,x29,28
adrp x0, .LCC
add x0,x0, :lo12:.LCC
bl scanf //Scans the character from keyboard
ldr w1, [X29, 28] //Loads the character inside x21
程序的目的是获取一个整数和一个字符并进行一些计算。所以我正在比较角色,我正在跳进所需的标签。但是,当数字大于255时,字符未正确读取且不会跳转到正确的标签。当我使用"%s"而不是" %c",该程序运行正常。