彙編標誌暫存器,進位與借位的理解

2021-03-03 20:46:57 字數 1100 閱讀 7914

1樓:本末終始

1.進位

假設a暫存器是8位的,最大的數是"11111111",現在加1,應該變成「100000000」,但只能放8位,怎麼辦?--->用cf參與進來,a中則放「00000000」。

2.借位

道理一樣.

2樓:匿名使用者

計算機中是補碼運算的,減法是用補碼加法來實現,所以就內部而言只有進位一說,都是有則置位cf,沒有則置零cf。但對我們使用者來講,加法運算產生的進位就叫「進位」,而減法運算產生的進位就叫「借位」。

3樓:匿名使用者

mov ax 0xff

inc ax

這時ax=0進位了所以 cf=1

mov ax 2

add ax 3

這時ax=5不進位cf=0

mov ax 0

dec ax

0減1需要借位(這個知道吧,小學學

版豎式運算)...借位了所以cf=1

明瞭沒?就是凡是進權位或者借位cf置1

呵呵...最後很猥瑣的問下...

能不能加點分啊?這知識無價呀...呵荷...

組合語言進位與借位的問題。

4樓:匿名使用者

你這裡混淆了兩個概念,無符號數和有符號數。

如果你希望得到2-3=-1,那麼你應該認為2和-3都是有符號數,既然是有符號數,是否產生借位要看of標誌位,即溢位標誌位;

如果你認為2和-3的補碼對應的無符號數253都是無符號數,那麼它們之和為255,沒有產生進位。

所以,當你判斷有符號數的時候,不應該看cf來判斷是否有借位。

不管怎樣,機器中的運算是00000010+11111101,結果為11111111,cf為0,of為1。

5樓:匿名使用者

王爽《組合語言》第二版是這麼說的:

一般情況下,在進行無符號數運算的時候,它(cf)記錄了運算結果的最高有效位向更高位的進位值,或從更高位的借位值。

也就是說,在2-3的時候,它產生了借位,cf為1;而2+(-3)的時候,計算機把它當作2+fch的運算來影響cf,所以cf為0

8086標誌暫存器中標誌的作用,通過示例說明如何設定標誌位的值以及設定標

標誌暫存器只有低八位是可操作的,使用lahf,將標誌暫存器中的低八位的值送到ah中 sahf,將ah中的內容送到標誌暫存器中的低八位使用復位鍵,可以將標誌暫存器中的所有位全部清零cli,sti,分別是if位清零和置1 clc,stc,分別是cf位清零和置1 cld,std,分別是df位清零和置1 以...

彙編中的R1R2R6是什麼意思與暫存器有關係嗎

組合語言中r1,r2.r6是工作暫存器。arm9處理器共有37個32位長的暫存器,這些暫存器包括 ro r12 均為32位通用暫存器,用於資料操作。但是注意 絕大多數16位thumb指令只能訪問r0 r7,而32位thumb 2指令可以訪問所有暫存器。cortex a8處理器有40個32位長的暫存器...