作者CarlOrz (凱爾)
看板ASM
標題[問題] ARM 的 subs 指令
時間Sun Apr 18 17:40:40 2010
板眾好
我最近在看 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
1F:推 pupucar:個人猜測 減法在硬體上的實做其實就是去加 減數的2的補數 04/18 20:47
2F:→ pupucar:0x0000001 + 0x11111111 = 0x00000000 會有進位是正常的 04/18 20:48