《組合語言》檢測點13 1

2021-10-08 05:23:48 字數 1297 閱讀 1501

(1)在上面內容中,我們用7ch中斷例程實現loop的功能,則上面的7ch中斷例程所能進行的最大轉移位移是多少?

在7ch中斷例程中,位移的轉移是通過bx中儲存的offset來實現的,因此,理論上來說,最大轉移位移取決於bx中資料的大小,而bx是乙個16位的暫存器,最大值為65535

(2)用7ch中斷例程完成jmp near ptr s指令的功能,用bx向中斷例程傳送轉移位移。應用舉例:在螢幕的第12行,顯示data段中以0結尾的字串。

assume cs:code

data segment

db 'conversation',0

data ends

code segment

start:

mov ax,cs

mov ds,ax

mov si,offset jmpst

mov ax,

0 mov es,ax

mov di,

200h

mov cx,offset jmpe - offset jmpst

cldrep movsb

mov ax,

0 mov es,ax

mov word ptr es:

[7ch*4]

,200h

mov word ptr es:

[7ch*4+

2],0

mov ax,data

mov ds,ax

mov si,

0 mov ax,

0b800h

mov es,ax

mov di,12*

160+35*

2s:cmp byte ptr [si],0

je ok

mov al,ds:

[si]

mov es:

[di]

,al inc si

add di,

2 mov bx,offset s - offset ok

int7chok:

mov ax,

4c00h

int21hjmpst:

push bp

mov bp,sp

add [bp+2]

,bx pop bp

iret

jmpe: nop

code ends

end start

組合語言檢測點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來尋找堆疊裡資料或...

組合語言檢測點11 3

建議先自己思考問題的答案,不懂則返回看書 這兩道題太簡單了,但為了完整的系列,還是寫寫,沒必要分析。a,b 表示此範圍包含a,b a,b 表示此範圍不包含a,b 1 補全下面的程式,f000 0處的32個位元組中,大小在 32,128 的資料的個數。mov ax,0f000h mov ds,ax m...