組合語言檢測點11 1詳細解析

2021-10-04 23:33:08 字數 705 閱讀 1025

建議先自己思考問題的答案,不懂則返回看書

分析:

zf:記錄結果是否為零。結果為零,則zf為1;結果為1,則zf為0

pf:記錄結果中二進位制形式下1的個數是否為偶數。若1的個數是偶數,則pf=1;若1的個數是奇數,則pf=0

sf:記錄結果是否為負。若結果為負,則sf=1;若結果非負,則sf=0

注意:若資料當作無符號數計算,則sf的值沒有意義,雖然可能會影響到它的值變化,但沒有意義。

zf   pf   sf

sub al,al 1 1 0 ;結果為0,有0個為1的bit位,非負。

mov al,1 1 1 0 ;傳送指令不影響標誌位。

push ax 1 1 0 ;傳送指令不影響標誌位。

pop bx 1 1 0 ;傳送指令不影響標誌位。

add al,bl 0 0 0 ;結果為00000010b,結果不為0,有1個為1的bit位,非負。

add al,10 0 1 0 ;結果為00001100b,結果不為0,有2個為1的bit位,非負。

mul al 0 1 0 ;結果為10010000b,結果不為0,有2個為1的bit位,非負。

組合語言檢測點11 4詳細解析

建議先自己思考問題的答案,不懂則返回看書 下面的程式執行後 ax 析 pushf 和 popf 是對標誌暫存器的操作指令,本質上還是對資料的操作,標誌暫存器是16位,與通用暫存器 ax,bx 不一樣的是它是按 位 起作用的,即每一 位 都有它自己的含義,而通用暫存器整體表示乙個含義。具體分析 mov...

組合語言檢測點13 1詳細解析

建議先自己思考問題的答案,不懂則返回看書 7ch中斷例程如下 bx表示兩標號之間的轉移位移 lp push bp mov bp,sp dec cx jcxz lpret add bp 2 bx lpret pop bp iret 1 在上面的內容中,用7ch中斷例程實現loop的功能,則上面的7ch...

組合語言檢測點10 4

建議先自己思考問題的答案,不懂則返回看書 這兒用到了bp,除了之前這樣用過bp外 bx bp 還會在棧中用到。比如說,堆疊中壓入了很多資料或者位址,你肯定想通過sp來訪問這些資料或者位址,但sp是要指向棧頂的,是不能隨便亂改的,這時候你就需要使用bp,把sp的值傳遞給bp,通過bp來尋找堆疊裡資料或...