assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:mov ax,0b800h
mov es,ax
mov ah,0
mov al,160 ;定位显存行位置dh*160
mul dh
mov dh,0
add dl,dl ;定位显存列位置
add ax,dx ;显存地址存入ax
begin:push ax
push cx
mov bx,0
mov cl,ds:[si] ;检查字符串是否结束
mov ch,0
jcxz ok
mov al,ds:[si]
pop cx
mov ah,cl
pop bx
mov es:[bx],ax ;<<<<DEBUG到这句时ax值为什么会改变了,
inc si
add bx,2
jmp short begin
ok:ret
code ends
end start
DEBUG到mov es:[bx],ax时ax值为什么会改变了 |