2010-05-24 37 views
1

假設AX = FFFE和BX =現在如果我們寫1234
cmp ax,bx
(BX將從AX中減去和approprite flages將被更新) 現在斧和BX數字的二進制表示由進位旗問題!

給出
AX = 1111 1111 1111 1110 
    BX=  0001 0010 0011 0100 


如BX將從斧所以我們必須否定BX被減去(作爲結果= AX +( - BX)) 所以否定BX(2的BX的補碼)由下式給出。

BX= 1110 1101 1100 1100 

現在我們添加兩斧和BX(如減法是通過另外的計算機實現的)現在

AX= 1111 1111 1111 1110 
    BX= 1110 1101 1100 1100 
    ------------------------------------ 
     1 1110 1101 1100 1010 

正如你所看到的結果是17位的,現在的第17位應進入瑕疵,但是當我檢查它的進位標誌是0就是CF = 0爲什麼?

回答

1

當執行減法時,將進位標誌看作借位。它被初始化爲1,所以操作是a−b−C,即a + not(b) + C而不是你所描述的a + not(b) + 1。換句話說,進位被反轉以減去,所以它可以用來做多精度相減。