1

所以我有这行代码:

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

4

1 回答 1

3

是的—— cmp(至少在大多数汇编语言中)做减法。它根据减法的结果设置标志,然后丢弃结果本身。

于 2012-07-18T22:38:21.540 回答