汇编很基础的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:19:54
cod1 segment
xx db 'hello!world!','$'
cod1 ends

code segment
assume cs:code ds:cod1

start:
mov ax,cod1
mov ds,ax

lea dx,xx ;-------------------------->这句我用ax,bx,cx就显示乱码,而用dx就可以正常显示,这是为什么,请高手详细解答,谢谢了!!
mov ah,9h
int 21h

mov ax,4c00h
int 21h
code ends
end start

mov ah,9h
int 21h
这是个DOS 功能调用,作用是显示DX所指向的缓冲区的字符串,你未指定DX,则DX值是未知的,当然就显示不可知的内容了,视那里DX的值而定。

当用lea dx,xx 指定DX后,此问题就不存在了。