【asm基础】vs下的反汇编

桃扇骨 2023-10-16 23:12 32阅读 0赞

反汇编

对于下面的代码:

Center

为了反汇编,首先需要将代码进行调试运行,这时需要先打点:

20160311234033153

之后启动调试:

20160311234045794

调试过程中,可以选择调试->窗口->反汇编,进行代码的反汇编:

20160311234059786

反汇编的结果如下:

20160311234111943

上述反汇编代码是在Debug版本下得到的,即:

20160311234123200

其中001313BE(16进制,没有加符号说明)是存放代码的地址,而138154h(16进制,有加符号h说明)是全局变量gi的地址。为了确定这一点,可以通过监视窗口查看:

20160311234134044

具体窗口中输入输入名称&gi,可以观察到:

20160311234146678

这是变量的值,至于代码存放的位置,通过直接查看1313BE这个内存地址来查看:

20160311234159091

在内存监视窗口中查看到的值如下:

20160311234211428

由于存放在内存中的是机器码,没法直接看出来mov指令是否在1313BE这个问题,所以先要把mov指令翻译成对应的机器码。具体做法是在代码窗体中右键,并选择“显示代码字节”:

20160311234225694

之后得到mov对应的机器码如下:

20160311234235366

刚好与内存中的数据一致!

发表评论

表情:
评论列表 (有 0 条评论,32人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C基础汇编

    switch switch性能高于if语句的原因在于在case值较为连续的时候会生成值连续的大表,用switch的参数减去第一个最小的case值,和最大值进行比较,小于等

    相关 浅析VS2010汇编

    第一篇 1. 怎样进行反汇编 在调试的环境下,我们能够很方便地通过反汇编窗体查看程序生成的反汇编信息。 例如以下图所看到的。 [![image][]][image