所以我有这行代码:
LOOP CMP Y, #0
BEQ DONE - When it is equal go to DONE.
ADD X, #1 - add decimal constant 1 to x.
SUB Y, #1 - subtract decimal constant 1 from y
B LOOP - branch loop (start the loop again)
DONE ...
我刚刚读到CMP意味着从Rn中减去操作数(Y减去0) 并且CMN意味着将操作数添加到Rn(例如0 + Y)
第一行(LOOP CMP Y,#0):我认为这只是将Y与数字0进行比较。这是真的吗?
答案 0 :(得分:3)
是 - cmp
(至少在大多数汇编语言中)进行减法。它根据该减法的结果设置标志,但随后抛弃结果本身。