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:push ax
push bx
push cx
push dx
push si
push es
mov ax,10
mul dh
add ax,0b800h
mov es,ax
mov ax,2
mul dl
mov bx,ax
mov al,cl
s:mov cl,[si]
mov ch,0
jcxz ok
mov dl,[si]
mov es:[bx],dl
inc bx
mov es:[bx],al
inc si
inc bx
jmp short s
ok:pop es
pop si
pop dx
pop cx
pop bx
pop ax
ret
code ends
end start
我的问题是,此程序执行后,字符串显示在第7行。而给dh的是8,那么字符串应该在第9行(输入0为第1行)。为什么在第7行显示? |