用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0
mov ax, 0b800h
mov es, ax
mov di, 12*160
s:
cmp byte ptr [si], 0
je ok
mov al, [si]
mov es:[di], al
inc si
add di, 2
mov bx, offset s-offset ok
int 7ch
ok:
mov ax, 4c00h
int 21h
code ends
end start
安装程序
assume cs:code
code segment
start:
mov ax, cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do0end-offsetdo0
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h
do0:
push bp
mov bp,sp
add [bp+2],bx
pop bp
iret
mov ax,4c00h
int 21h
do0end:
nop
code ends
end start
网友评论