【发布时间】:2017-09-23 07:36:40
【问题描述】:
所以我是 ARM 汇编的初学者(通常也是汇编)。现在我正在编写一个程序,其中最大的一部分是用户需要输入一个字母,然后我会将那个字母与其他一些预先输入的字母进行比较,看看用户是否输入了相同的字母事物。
例如,在我的代码中
.balign 4 /* Forces the next data declaration to be on a 4 byte segment */
dime: .asciz "D\n"
在文件的顶部和
addr_dime : .word dime
在文件的底部。
另外,根据我在网上阅读的内容,我放了
.balign 4
inputChoice: .asciz "%d"
在文件的顶部,然后放
inputVal : .word 0
在文件的底部。
在文件中间附近(相信我,这个独立代码有问题,文件的其余部分在这种情况下无关紧要)我有这个代码块:
ldr r3, addr_dime
ldr r2, addr_inputChoice
cmp r2, r3 /*See if the user entered D*/
addeq r5, r5, #10 /*add 10 to the total if so*/
我认为应该将“D”加载到 r3 中,将用户输入的任何字符串或字符加载到 r2 中,如果它们相同,则将 10 加到 r5 中。
由于某种原因,这不起作用,并且 r5、r5、#10 代码只有在 addne 出现在它之前时才有效。
【问题讨论】:
标签: string assembly arm string-comparison