概述
看代码
#include "stdafx.h"
#include <iostream>
using namespace std;
class CTestA
{
public:
CTestA(){cout<<"CTestA()n";}
~CTestA(){cout<<"~CTestA()n";}
int fun(){
return 10;
//eax存放函数返回值
//this指针存放在ecx中
}
};
class CTestB
{
public:
CTestB(){cout<<"CTestB()n";}
~CTestB(){cout<<"~CTestB()n";}
};
int _tmain(int argc, _TCHAR* argv[])
{
CTestA a;
a.fun();
CTestB b;
return 0;
}
查看反汇编代码
int fun(){
00FC1690
push
ebp
00FC1691
mov
ebp,esp
00FC1693
sub
esp,0CCh
00FC1699
push
ebx
00FC169A
push
esi
00FC169B
push
edi
00FC169C
push
ecx
00FC169D
lea
edi,[ebp-0CCh]
00FC16A3
mov
ecx,33h
00FC16A8
mov
eax,0CCCCCCCCh
00FC16AD
rep stos
dword ptr es:[edi]
00FC16AF
pop
ecx
// ecx 0x00b3fe5f unsigned long this指针 +
//
this 0x00b3fe5f CTestA * const
00FC16B0
mov
dword ptr [ebp-8],ecx
return 10;
00FC16B3
mov
eax,0Ah
//此段汇编指令是将0ah 及10 存放在eax中
// eax 0x0000000a unsigned long
}
结果是
1、eax常用来存放函数返回值。
2、ecx寄存器用来存放this指针。
最后
以上就是执着咖啡为你收集整理的在windbg调试的时候 针对ecx和eax说明的全部内容,希望文章能够帮你解决在windbg调试的时候 针对ecx和eax说明所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复