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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;编写并安装int 7ch中断例程,
;功能为显示一个用0结束的字符串,
;中断例程安装在0:200处
;参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址.
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset display_string
mov ax,0
mov es,ax
mov di,200h
mov cx,offset display_string_end - offset display_string
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
display_string:
push ax
push bx
push cx
push dx
push ds
push si
push es
push di
mov al,160
mul dh
mov bx,ax
mov ax,2
mul dl
add bx,ax
add bx,0a0h
mov di,bx
mov ax,0b800h
mov es,ax
display_string_s:
cmp byte ptr ds:[si],0
je display_string_ok
mov al,ds:[si]
mov es:[di],al
mov es:[di].1,cl
add di,2
inc si
jmp short display_string_s
display_string_ok:
pop di
pop es
pop si
pop ds
pop dx
pop cx
pop bx
pop ax
iret
display_string_end:
nop
code ends
end start
;;;;;;;;;;;;;向大家学习;;;;;;;;;;;;;;;;;;;;; |