;編寫並安裝int 7ch中斷例程,功能爲顯示一個用0結束的字符串,中斷例程安裝在0:200處
;參數:(dh)=行號,(dl)=列號,(cl)=顏色,ds:si指向字符串首地址
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start:mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds,ax
mov si,0
int 7ch
mov ax,cs ;中斷程序複製到0:200處
mov ds,ax
mov si,offset do7ch
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do7chend-offset do7ch
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
do7ch:push ax
push bx
mov ax,0b800h
mov es,ax
mov bx,0
mov al,160 ;顯示首位置=行*160+列*2,
mul dh
mov dh,0
add ax,dx
add ax,dx
mov bx,ax ;顯示首位置賦給bx
s: mov al,ds:[si]
cmp al,0
je end7
mov es:[bx],al
mov es:[bx+1],cl
inc si
add bx,2
jmp short s
end7:pop bx
pop ax
iret
do7chend:nop
code ends
end start