反汇编分析
#include<iostream>
using namespace std;
int main() {
int a = 1;
int b = 1;
int c = a + b;
return 0;
}
这一段代码反汇编得到以下汇编代码:
int a = 1;
mov dword ptr [ebp-8],1
int b = 1;
mov dword ptr [ebp-14h],1
int c = a + b;
mov eax,dword ptr [ebp-8]
add eax,dword ptr [ebp-14h]
mov dword ptr [ebp-20h],eax
注意:不能对内存直接进行加减操作,必须通过寄存器进行操作。
这是由CUP架构决定的,不支持mov [ ] [ ] 这样的操作,一定要借助寄存器才能完成。
指针的反编译:
#include<iostream>
using namespace std;
int main() {
int age = 10;
int *p