[問題] ARM 的 subs 指令

看板ASM作者 (凱爾)時間14年前 (2010/04/18 17:40), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/2 (看更多)
板眾好 我最近在看 ARM system developers' guide 裡面提到了 SUBS 這個指令除了執行 SUB 外 還會去 update cpsr 書中第 54 頁講了一個例子 cpsr = nzcvqiFt_USER r1 = 0x00000001 SUBS r1, r1, #1 結果為 cpsr = nZCvqiFt_USER r1 = 0x00000000 r1 的結果為0 與 Z (zero) flag 拉為 1 是可以想到的 Q: 我不懂的是為何 C(carry) flag 會拉為 1 呢 ?? 運算過程中並沒有 carry 發生啊 ?? 懇請板眾賜教 感恩 !!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.241.90

04/18 20:47, , 1F
個人猜測 減法在硬體上的實做其實就是去加 減數的2的補數
04/18 20:47, 1F

04/18 20:48, , 2F
0x0000001 + 0x11111111 = 0x00000000 會有進位是正常的
04/18 20:48, 2F
文章代碼(AID): #1BojEQEp (ASM)
文章代碼(AID): #1BojEQEp (ASM)