用汇编语言编写CMP

时间:2012-07-18 22:26:50

标签: loops assembly cmp

所以我有这行代码:

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进行比较。这是真的吗?

1 个答案:

答案 0 :(得分:3)

是 - cmp(至少在大多数汇编语言中)进行减法。它根据该减法的结果设置标志,但随后抛弃结果本身。