(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...