1

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

4

0 回答 0