00401AA0 >/$ 55 push ebp
00401AA1 |. 8BEC mov ebp, esp
00401AA3 8BC5 mov eax, ebp 1
00401AA5 68 F8244000 push 004024F8
00401AAA 8D45 00 lea eax, dword ptr [ebp] 2
00401AAD 8D45 FC lea eax, dword ptr [ebp-4] 3
00401AB0 8B45 00 mov eax, dword ptr [ebp] 4
00401AB3 90 nop
1处把ebp地址给了eax
2处也把ebp的地址给了eax
3处先把ebp的地址上移一格再给了eax
4处才把ebp的内容给了eax
看来源地址寄存器用[]括起来表示内容,不用[]括起来表示地址,除了lea指令以外,在lea指令中,源地址用[]括起来表示地址而非内容。32位操作系统下,内存偏移就是内存地址,因为他是平坦的内存分布形式,
对于寄存器来说,如ebx,[ebx]表示ebx所指向的地址内的内容,ebx表示ebx所指向的地址,
ebx就如c语言中的指针一样,p代表ebx,*p代表[ebx]。
寄存器带[]与不带[]的区别
最新推荐文章于 2023-02-07 21:17:32 发布