汇编语言 实验10.1
assume cs:code,ds:datasg
datasg segment
db 'welcome to masm!',0
datasg ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment ;代码段
start: mov dh,8
mov dl,3
mov cl,2
mov ax,datasg
mov ds,ax
mov si,0
call show_str
mov ax,4c00h ;程序返回
int 21h
show_str:
mov ax,80
mul dh
mov dh,0
add ax,dx
mov dx,2 ; ax * 2
mul dx ; ax = start addr of display
mov di,ax ; 将起始地址存在di里
mov bl,cl ; 将格式存在bl里
mov cx,0
s: mov cl, byte ptr ds:[si] ; 数据写入cl
jcxz zero ; 如果数据是0 跳转
mov ax,ds
push ax
mov ax,0b800h
mov ds,ax
mov ds:[di],cl
mov ds:[di+1],bl
pop ax
mov ds,ax
inc si
add di,2
jmp short s
zero:
ret
code ends
end start ;start标号处作为程序入口