我的分支机构有什么问题? (ARM装配)

时间:2016-11-23 00:10:28

标签: arm

我现在正在使用以下代码:

push {r1-r2, lr}
mov r1, r0
ldrb r2, [r1]

cmp r2, #'0'
blt notNum
cmpgt r2, #'9'
bgt notNum
ldrltb r2, [r1, #1]
cmplt r2, #0
beq isNum
bne notNum

isNum:
mov r0, #1
notNum:
mov r0, #0

此特定代码的目的是获取存储在r0中的字符串并测试它是否为数字。我目前遇到的问题是,由于某种原因,第一个cmp总是导致通过blt分支到notNum。我做了一些gdb测试并假设我的逻辑是正确的(cmp = input1 - input2)然后比较标志将大于。任何有关我的问题的见解将不胜感激。

0 个答案:

没有答案