装配ArmV8

时间:2017-04-20 13:35:20

标签: c assembly armv8

我使用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",该程序运行正常。

0 个答案:

没有答案