-
-
汇编返回问题[求助]
-
发表于:
2006-7-11 13:17
3897
-
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汇编语言程序设计第二版上面的例子,晕啊
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)