微机原理 返回DOS

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:59:49
为什么执行PUSH DS
MOV AX 0
PUSH AX 后就可以返回DOS系统?

因为DOS操作系统在加载EXE程序时,要在自己的数据段数据、代码之前分配一个结构,记录程序及系统的有关信息,名字叫DOS段前缀,有关它的信息,请见http://www.moon-soft.com/program/bbs/readelite1984.htm

执行PUSH DS
MOV AX 0
PUSH AX 后,当遇到RET指令时,IP=0,CS=DS,即执行DS:0的语句。

而在DOS段前缀的前两字节,为CD 20(INT 20H指令,DOS中断返回),所以可以返回操作系统了。