能力值:
( LV9,RANK:140 )
|
-
-
2 楼
lea eax,[ebp+8]; 结果为 eax=ebp+8 一般用lea 可以执行一些计算 计算一些偏移 例如此处就是如此 mov eax,ebp + 8; 这一句语法不正确 编译过不去 lea eax,[eax]; 这句结果为eax=eax
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
lea eax, [ebp + 8];是返回ebp指针的值+8 mov eax, ebp + 8;是返回ebp指针+8的值???
|
能力值:
( LV1,RANK:0 )
|
-
-
4 楼
LEA是寻址指令,不做读取数据,只将目标地址放入目标寄存器 MOV是读取/写入目标地址/寄存器的数据。是将数据放入目标寄存器/内存
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
mov eax, dword [ebp+0x08] mov eax, dword [eax] add eax, 0x08 越来越糊涂了,那上面这几句是做了什么事情?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
EBP+0x8应该是一个二重指针 mov eax, dword [ebp+0x08]解引用一次剩下一层 mov eax, dword [eax]解引用两次取到值 add eax, 0x08 把这个值+8
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
haijie
mov eax, dword [ebp+0x08]
mov eax, dword [eax]
add eax, 0x08
越来越糊涂了,那上面这几句是做了什么事情?
ebp+0x80处的内存数据是个地址
|
能力值:
( LV1,RANK:0 )
|
-
-
8 楼
haijie
mov eax, dword [ebp+0x08]
mov eax, dword [eax]
add eax, 0x08
越来越糊涂了,那上面这几句是做了什么事情?
void func(PDWORD arg1) { DWORD a0 = *arg1 + 8; }
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
应该是: lea eax,[ebp+8] 与 mov eax,[ebp + 8] lea eax,[eax] 不同吧!没有: mov reg, reg+imm这个写法。 前者是让eax保存ebp+8,后者是让eax,保存ebp+8所指向地址处的4字节值
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
lea eax,[ebp+8] = mov eax,ebp add eax,8
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
lea 是取地址,用于取数据指针 如 a = &b mov 是赋值 如 a = 1 ; a = b;
最后于 2021-2-16 09:34
被Mxixihaha编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
mov eax,eax 意思是 赋值。 mov eax,【eax】 意思是 [] 内做为指针,将其内值赋值给前面。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
ffashi
mov eax,eax
意思是 赋值。
mov eax,【eax】
意思是 [] 内做为指针,将其内值赋值给前面。
谢谢!
|
|
|