版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12
作者By-----溺心与沉浮----博客园

PUSHAD与POPAD

  这两条指令其实就是讲EAX,ECX,EDX,EBX,ESI,EDI,ESP,EBP这8个寄存器的值分别入栈与出栈

为了方便演示,我们先把OD中红框部分,8个寄存器中的6个置位0x1,0x2,0x3,0x4,0x5,0x6,ESI与EDI不变,因为这两个是栈顶与栈底,这两个我们不对其进行改变,然后我们写入

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12
作者By-----溺心与沉浮----博客园

执行第一步代码,PUSHAD,观看内存中的变化

18FF8C使我们原本栈顶的位置,执行PUSHAD之后,ESP栈顶的值变为现在的18FF6C,仔细观看0x18FF8C到0x18FF6C之间的值,发现它将EAX,ECX,EDX,EBX,ESI,EDI,ESP,EBP这8个寄存器中的值全部压入了栈中

为了方便演示POPAD,我们将EAX,ECX,EDX,EBX,ESP,EBP这6个寄存器的值全部更改为0

按F8执行POPAD

可以发现,ESP栈顶的值又恢复成原来的栈顶的值0x18FF8C,寄存器中的值也恢复成之前的值。

文章到此就结束了,这篇文章就只是简单介绍了,PUSHAD与POPAD的使用,如果你需要深入了解,建议去百度搜索一下,如果读者对我之前PUSH,POP文章有了解过,并动手操作过PUSH于POP其他形式的执行过程,那么你就可以简单认知PUSHAD与POPAD了,

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12
作者By-----溺心与沉浮----博客园

最新文章

  1. 转: CentOS安装jdk8
  2. 自己yy的fulkson最大流算法
  3. php基础23:数值与数值函数
  4. 浅谈Dynamic 关键字系列之一:dynamic 就是Object(转)
  5. Google Code Jam 2009, Round 1C C. Bribe the Prisoners (记忆化dp)
  6. JS分段上传文件(File)并使用MD5.js加密文件段用来后台校验
  7. 1032 - Intersecting Dates
  8. [Javascript] Automating Releases with semantic-release
  9. IT运维外包甩不掉的包袱
  10. php+mysql 除了设置主键防止表单提交内容重复外的另一种方法
  11. javascript中DOM集锦(二)
  12. phpstudy最新版中php5.6版报错
  13. Shell脚本的基本流程控制
  14. 部署 apply plugin: 'realm-android'
  15. windows核心编程
  16. 工作总结(一):Linux C
  17. 利用OSG实现模拟飞机尾迹-粒子系统
  18. 1001. [BJOI2006]狼抓兔子【最小割】
  19. Redis自学笔记 --string类型
  20. Nginx+SpringBoot搭建负载均衡

热门文章

  1. 原生js利用data选择元素
  2. python从入门到放弃--线程进阶
  3. Python企业面试题(系列目录)
  4. pycharm 设置django server
  5. Hbulder 调试安卓app
  6. 15 C++遍历某个文件夹下的文件
  7. goroutine使用
  8. 水平划分table
  9. Vue+Element UI 实现视频上传
  10. [NewLife.XCode]百亿级性能