首页
社区
课程
招聘
求助 汇编写法 pushad popad
发表于: 2012-1-28 05:34 7586

求助 汇编写法 pushad popad

2012-1-28 05:34
7586
用这两个指令会不会影响其他子程序噢?

用 pushad popad 好    还是。。。

还是自己需要压或弹什么就写压或弹什么好

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
pushfd
pushad
。。。
popad
popfd

这样安全,不仅保存寄存器,还保存位。
2012-1-28 09:22
0
雪    币: 983
活跃值: (1186)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
不管用哪个,到代码执行完了,得把寄存器清零操作吧,比如中间如果用到eax后面得把这个寄存器清零。我每次都是这样做的,后面写入xor  eax,ea或者sub eax,eax
2012-1-28 09:55
0
雪    币: 180
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不知道你是否了解 pushad 和 popad 指令的意思。
pushad 相当于

push eax
push ecx
push edx
push ebx
push esp
push ebp
push esi
push edi


popad 相当于

pop edi
pop esi
pop ebp
pop esp
pop ebx
pop edx
pop ecx
pop eax


使用了这两条指令后(pushad 和 popad),在这两条指令中间进行的任何对寄存的修改都不会影响到这两条指令后面的指令。
不知道你想用它们做什么,如果是用到子程序中的话,你这个子程序不要用寄存器传递返回值。例如:子程序开始你用了pushad,然后你把子程序的返回值放到eax,popad时会把eax重写,这样你的返回值就可能是错误的。
2012-1-28 10:49
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
pushfd
顺序压入
{
  sf
  pf
  cf
  af
  df
  zf
  of
  

}
2012-1-28 15:31
0
游客
登录 | 注册 方可回帖
返回
//