我尝试用C语言转换一些程序集。我知道LEA指令将地址存储到指定的寄存器中。
例如:
LEA EAX, DWORD PTR SS:[EBP - 0x8]
在堆栈地址[EBP - 0x8]中,我的值为00000003D(ollydbg显示它)。 如果我假设eax是指针并将00000003D视为61(十进制),那么我尝试以下操作:
int value = 61;
int *eax = &value
你同意吗?是否?如果没有,为什么?
答案 0 :(得分:3)
LEA
指令计算一个地址,在这种情况下是一个指向局部变量的指针,所以你写的内容非常接近。