汇编若要返回dos操作系统,ret的返回地址是多少?

一般代码前面都有mainprocfarstart:pushdssubax,axpushax结尾是int21hret为什么要有这些呢?如果是这样的话ret的返回地址是多少?... 一般代码前面都有
main proc far
start:
push ds
sub ax,ax
push ax
结尾是int 21h
ret
为什么要有这些呢?
如果是这样的话ret的返回地址是多少?为什么要把ax寄存器的内弄置为0?别的值可以吗?
自己搜索了下看懂了,谢谢回答.
push ds
sub ax,ax
push ax
是设置把ds,ax进栈
ret返回dos时的地址
ds指向psp段,dos的返回地址是要求指向psp段的第一个字节地址因此ax寄存器的内容是00h
展开
 我来答
还是别说话SN
2010-11-05 · TA获得超过708个赞
知道小有建树答主
回答量:333
采纳率:50%
帮助的人:169万
展开全部
int 21h是dos中断的调用命令,它有很多功能,功能号放在AH中。
AX清零表示AH=0,压栈的两个参数应该是这个功能的参数,你可以看看相应功能。
axpokl
2010-11-05 · TA获得超过228个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:274万
展开全部
这是一个中断调用,调用的是21h号中断。汇编我也不太懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式