我正在使用 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”时,程序运行良好。