2014-04-21 108 views
0

如果寄存器包含0,並且我嘗試從它減去一些值,寄存器內的值會變成什麼?它會在STATUS寄存器中調用零標誌,我如何使用它來檢查我們是否要去負數?PIC彙編:遞減寄存器0

例如,在這個代碼

MOVLW b'00000000' ; W has value 0 
SUBLW b'00000001' ; trying to decrement 

我想遞減W寄存器,它有什麼後果?

回答

1

無論W是否爲零,SUBLW都會用W減去W中的值。當然,結果會是怎樣

W = W - literal; 

如果W = 0,那麼它的,如果該類型簽訂了否定,或包裹,如果它周圍的無符號。

Before: W = 00000000 
      -  1 
____________________ 
After: W = 11111111 (-1) 

但是如果W是零,減去一個非零數字從它將使非爲零,因此零標誌不會在

如果您需要檢查值是否爲負數或不,請同時攜帶國旗和零標誌

Result Carry Zero 
Positive 1  0 
Zero  1  1 
Negative 0  0 

http://www.pcbheaven.com/picpages/Mathematic_Instructions/