中断例程:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset prints
mov ax,0
mov es,ax
mov di,200h
mov cx,offset printsend-offset prints
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
;dh 行号 dl列号 cl颜色 ds:si字符串首地址
prints:
push si
push ax
push es
push di
push cx
mov ax,0b800h
mov es,ax
mov al,160d
mul dh
mov di,ax
mov al,2
mul dl
add di,ax
mov al,cl
mov ch,0
print:
mov cl,ds:[si]
jcxz printok
mov es:[di],cl
mov es:[di+1],al
inc si
add di,2
jmp short print
printok:
pop cx
pop di
pop es
pop ax
pop si
iret
printsend:
nop
code ends
end start
测试程序:
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,4c00h
int 21h
code ends
end start