zoukankan      html  css  js  c++  java
  • pushad与popad

    版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。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-----溺心与沉浮----博客园

  • 相关阅读:
    10款免费开源图表插件推荐
    jQuery中$.get()、$.post()和$.ajax()
    layer弹出层的iframe页面回调
    【转载】MSXML应用总结 概念篇
    【转载】MSXML应用总结 开发篇(上)
    【转载】MSXML应用总结 开发篇(下)
    【转载】MFC怎么封装CreateWindow
    【转载】MFC的Main函数跑哪去了
    【转载】C++创建对象的两种方法
    【转载】malloc内存分配与free内存释放的原理
  • 原文地址:https://www.cnblogs.com/Reverse-xiaoyu/p/11408778.html
Copyright © 2011-2022 走看看