2017-06-18 82 views
1

處理器:MSP430 16位RISCCMP和進位標誌

有人可以解釋CMP指令的時候,進位標誌實際設置在下面。從上面說的手動,

CMP(.B)SRC,DST ..... DST - SRC

如果SRC不等於DST,將進位標誌設置?

cmp r15, r11 
jnc #1234 
+2

取決於被更大...如果'R11 Jester

+0

在這種情況下,進位標誌只在減法(dst-src)aka(r11-r15)產生負值時才設置? –

+0

是的,這是正確的。請注意,無符號算術。 – Jester

回答

2

用戶手冊說:

說明
源操作數從目的操作數中減去。這是通過向目的地添加源+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