为什么反汇编代码中有一些"无意义"的内存插槽?

 李桂平2402851397 发布于 2023-02-08 17:32

我使用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"怎么办?

这个问题与内存对齐有关吗?

谢谢!

1 个回答
  • 这些是前一行操作数的一部分."立即"(常数)数字被编码为32位.因此0x07占用4个字节:07 00 00 00.无论您使用什么禁用,都会向您显示不同行上的最后一个字节.

    2023-02-08 17:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有