-
-
汇编返回问题[求助]
-
发表于:
2006-7-11 13:17
3898
-
code segment
assume ds:data, cs:code,ss:sseg
start:
main proc
push ds ;开始为 14CD
xor ax, ax
push ax
;set ds register to current data segment
mov ax, data
mov ds, ax ; 现在为14DD
;Main part of program code here
lea bx, buffer
mov flag, 0
next: mov ah, 1
int 21h
test flag, 01h
jnz follow
cmp al, 20h
jnz exit
mov flag, 1
jmp next
follow: cmp al, 20h
jz exit
mov [bx], al
inc bx
jmp next
exit: ret
main endp
code ends
end start
以上代码,运行后不能返回dos,用debug跟踪 ret返回到 14DD:0000,
也就是 pash ds这句,
改成下面的样子后正常返回。
注释掉这里 ;push ds
;xor ax, ax
;push ax
中间相同部分省。。。。。。
exit: mov ah,4ch
int 21h
清华大学 IBM-PC汇编语言程序设计第二版上面的例子,晕啊
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课