pushad和popad,这两个 压栈和出栈两个命令在什么时候需要加,什么时候不用加
展开全部
没有什么好纠结的。pushad和popad只能用于386及其后继机型。执行pushad,依次将EAX、ECX、EDX、EBX、ESI、EDI,执行后ESP- 32,用于保护中断现场;popad执行结果相反,用于恢复中断现场。
如果在程序中要用到某些寄存器,但它们的内容在将来还有用,就可以使用这组入栈和出栈指令。比如子程序的调用和中断处理程序调用会经常用到。在形式上与push和pop是类似的,但pushad和popad由于能一次性完成多个寄存器入栈出栈,故比单纯的push和pop更为方便,而且执行效率较高。
如果在程序中要用到某些寄存器,但它们的内容在将来还有用,就可以使用这组入栈和出栈指令。比如子程序的调用和中断处理程序调用会经常用到。在形式上与push和pop是类似的,但pushad和popad由于能一次性完成多个寄存器入栈出栈,故比单纯的push和pop更为方便,而且执行效率较高。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
搞不明白这有什么好纠结的,需要保存寄存器的时候就要用啊,比如进程的切换的时候。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询