我使用objdump在32位Linux上反汇编一些ELF文件.
asm文件采用Intel格式.
在反汇编文件中,我注意到一些内存插槽如下:
80483ed: c7 44 24 18 07 00 00 mov DWORD PTR [esp+0x18],0x7 80483f4: 00 80483f5: c7 44 24 1c 0c 00 00 mov DWORD PTR [esp+0x1c],0xc 80483fc: 00 80483fd: c7 44 24 20 01 00 00 mov DWORD PTR [esp+0x20],0x1 8048404: 00 8048405: c7 44 24 24 fe ff ff mov DWORD PTR [esp+0x24],0xfffffffe 804840c: ff
原始的汇编文件是:
mov DWORD PTR [esp+24], 7 mov DWORD PTR [esp+28], 12 mov DWORD PTR [esp+32], 1 mov DWORD PTR [esp+36], -2
有谁能告诉我内存地址如"80483f4","80483fc"怎么办?
这个问题与内存对齐有关吗?
谢谢!
这些是前一行操作数的一部分."立即"(常数)数字被编码为32位.因此0x07占用4个字节:07 00 00 00
.无论您使用什么禁用,都会向您显示不同行上的最后一个字节.