1
處理器:MSP430 16位RISCCMP和進位標誌
有人可以解釋CMP指令的時候,進位標誌實際設置在下面。從上面說的手動,
CMP(.B)SRC,DST ..... DST - SRC
如果SRC不等於DST,將進位標誌設置?
cmp r15, r11
jnc #1234
處理器:MSP430 16位RISCCMP和進位標誌
有人可以解釋CMP指令的時候,進位標誌實際設置在下面。從上面說的手動,
CMP(.B)SRC,DST ..... DST - SRC
如果SRC不等於DST,將進位標誌設置?
cmp r15, r11
jnc #1234
用戶手冊說:
說明
源操作數從目的操作數中減去。這是通過向目的地添加源+1的1s補碼 來完成的。結果僅影響SR中的狀態 位。
[...]
狀態位
C:如果存在來自MSB進位置位,復位否則
換言之,如果存在一個無符號的溢出C設定。如果JNC(如果沒有進位則跳轉)和JLO(如果低位跳轉)是相同的指令,則JC(跳轉如果進位)和JHS(跳轉,如果更高或相同) 。
例 如果R5≥R6(無符號),則程序繼續到Label2的。
CMP R6,R5 ; Is R5 >= R6? Info to C JHS Label2 ; Yes, C = 1 ... ; No, R5 < R6. Continue
取決於被更大...如果'R11
Jester
在這種情況下,進位標誌只在減法(dst-src)aka(r11-r15)產生負值時才設置? –
是的,這是正確的。請注意,無符號算術。 – Jester