Some Push Instructions
2012-06-20 23:28
239 查看
pushad: 将所有的32位通用寄存器压入堆栈
pusha:将所有的16位通用寄存器压入堆栈
pushfd:然后将32位标志寄存器EFLAGS压入堆栈
pushf:将的16位标志寄存器EFLAGS压入堆栈
popad:将所有的32位通用寄存器取出堆栈
popa:将所有的16位通用寄存器取出堆栈
popfd:将32位标志寄存器EFLAGS取出堆栈
popf:将16位标志寄存器EFLAGS取出堆栈
——对上面一些专用词的解释
通用寄存器:
16位cpu通用寄存器共有 8 个:AX,BX,CX,DX,BP,SP,SI,DI
八个寄存器都可以作为普通的数据寄存器使用。
但有的有特殊的用途:AX为累加器,CX为计数器,BX,BP为基址寄存器,SI,DI为变址寄存器,BP还可以是基
指针,SP为堆栈指针。
32位cpu通用寄存器共有 8 个: EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI功能和上面差不多
16/32位标志寄存器
16位标志寄存器共用了9个标志位,它们主要用来反映CPU的状态和运算结果的特征。标志位的分布如下表所示。
|
32位CPU也把标志寄存器扩展到32位,记为EFLAGS。它新增加了四个控制标志位,它们是:IOPL、NT、RF和VM,这些标志位在实方式下不起作用。其它标志位的位置和作用与先前的完全相同。
其主要标志位的分布如下表所示。
31 | … | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
… | … | VM | RF | NT | IOPL | OF | DF | IF | TF | SF | ZF | AF | PF | CF |
相关文章推荐
- 如何解决failed to push some refs to git
- git如何解决failed to push some refs to git
- Git推代码出现 failed to push some refs to git
- 如何解决failed to push some refs to git
- GitHub学习-----如何解决 error: failed to push some refs to git
- error: failed to push some refs to
- 【转载】如何解决failed to push some refs to git
- JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()
- Git 基础(九)—— Failed to push some refs to git
- error: failed to push some refs to git@github.com:damononliu/cv_python.git
- 如何解决failed to push some refs to git
- git push报错error: failed to push some refs to 'git@github.com:
- error: failed to push some refs【Linux】【Git】
- 提交git push 时failed to push some refs to
- 本地代码仓库push时:error: failed to push some refs to
- 关于github failed to push some refs
- error: failed to push some refs to 'git@x'x'x:xxxx/xxx.git' git提交本地分支到远程报错
- 如何解决failed to push some refs to git
- error: failed to push some refs to 'git@github.com:GoodMemery/mytest.git'
- 如何解决failed to push some refs to git