catch 发表于 2013-12-6 18:53:24

push ds sub ax,ax push ax的作用

本帖最后由 catch 于 2013-12-6 18:57 编辑

在汇编很多程序都可以看到这三条指令push dssub ax,axpush ax一直不明白有什么用,今天上汇编实验,借机问了老师。其实这三条指令是为了在程序结束时用RET指令返回DOS做准备,这是一种工作方式。在由DOS调用,进入程序后,首先把DS的内容和0作为段地址和偏移地址入栈,以便在程序结束时用RET指令返回DOS。如果在主程序开始时没有用上面三条指令,在堆栈段中建立返回信息,则在程序结束时就不能直接用RET返回指令,而应该使用编号为4C的功能调用返回DOS,如下所示:movax,4c00hint21h这种方式用得更加普遍。这些内容在可蹦145页的说明里面有提到。
页: [1]
查看完整版本: push ds sub ax,ax push ax的作用