当我查看一些汇编代码时,我注意到一个函数具有以下结构:
My_Function:
; Function Prologue
push EBP
mov EBP, ESP
sub ESP, 0x28 ;40 Bytes local variable allocation
; Some code here
; Function epilogue
leave
ret
所以如果我们假设My_Function接受一个1字节的参数,那么从堆栈帧中删除的位置。据我所知,一个函数的堆栈包含以下结构(从低地址到高地址):
LOW ADDRESS > | Local Var
我正在尝试通过在C++中使用内联程序集来增加数字的值。我这样做的原因是为了练习我的“内联汇编”技能。
到目前为止,这就是我所做的:
void main()
{
int x;
cout << "Please enter a number ";
cin >> x;
cout << "The number you entered is: " << x << "\n";
foo(&x);
cout << "The new