汇编输出字符串
;************************************
data segment
org 2000h
string db 'hello,world$'
data ends
;************************************
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ah,09h
lea dx,string;调试的时候dx=2000h,但是'hello,world$'存在ds:2100中???为什么?
int 21h
ret
main endp
code ends
end start
mov ah, 4ch
int 21h
;************************************
data segment
org 2000h
string db 'hello,world$'
data ends
;************************************
code segment
main proc far
assume cs:code,ds:data
start:
; 这句话是让最后程序返回不会报错的
; retf 地址 ds:ax
push ds
sub ax,ax
push ax
; 这里设置一下,让ds指向data段就没问题了
mov ax,data
push ax
pop ds
mov ah,09h
lea dx,string
int 21h
ret
main endp
code ends
end start