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 に答える