如何在VS2010下切换代码的汇编模式

来源:互联网 发布:国家统计局数据 编辑:程序博客网 时间:2024/06/06 01:35

在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息。如下图所示。

image

记得中断程序的运行,不然看不到反汇编的指令

image

 

看一个简单的程序及其生成的汇编指令

复制代码
#include<stdio.h>#include<windows.h>const long Lenth=5060000/5;int main(){    while(true){        for(long i=0;i<Lenth;i++){            ;        }        Sleep(10);    }}
复制代码

汇编窗口

image

对应的汇编语句

复制代码
#include<stdio.h>#include<windows.h>//using namespace std;const long Lenth=5060000/5;int main(){00F41380  push        ebp  00F41381  mov         ebp,esp  00F41383  sub         esp,0CCh  00F41389  push        ebx  00F4138A  push        esi  00F4138B  push        edi  00F4138C  lea         edi,[ebp-0CCh]  00F41392  mov         ecx,33h  00F41397  mov         eax,0CCCCCCCCh  00F4139C  rep stos    dword ptr es:[edi]      while(true){00F4139E  mov         eax,1  00F413A3  test        eax,eax  00F413A5  je          main+57h (0F413D7h)          for(long i=0;i<Lenth;i++){00F413A7  mov         dword ptr [i],0  00F413AE  jmp         main+39h (0F413B9h)  00F413B0  mov         eax,dword ptr [i]  00F413B3  add         eax,1  00F413B6  mov         dword ptr [i],eax  00F413B9  cmp         dword ptr [i],0F7120h  00F413C0  jge         main+44h (0F413C4h)              ;        }00F413C2  jmp         main+30h (0F413B0h)          Sleep(10);00F413C4  mov         esi,esp  00F413C6  push        0Ah  00F413C8  call        dword ptr [__imp__Sleep@4 (0F48194h)]  00F413CE  cmp         esi,esp  00F413D0  call        @ILT+295(__RTC_CheckEsp) (0F4112Ch)      }00F413D5  jmp         main+1Eh (0F4139Eh)  }00F413D7  pop         edi  00F413D8  pop         esi  00F413D9  pop         ebx  00F413DA  add         esp,0CCh  00F413E0  cmp         ebp,esp  00F413E2  call        @ILT+295(__RTC_CheckEsp) (0F4112Ch)  00F413E7  mov         esp,ebp  00F413E9  pop         ebp  00F413EA  ret
复制代码

0 0
原创粉丝点击