汇编若要返回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 展开
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 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询