小编Spe*_*ngs的帖子

如何解释 objdump 反汇编输出列?

我用 c 编写了一个简单的程序,它调用一个名为 while_loop 的函数,参数为 4,3,2。该函数基本上只是一个 while 循环,我认为它与我的问题并不真正相关,因为它更像是一个通用问题。有人告诉我运行 objdump -d,所以我做了。

在此处输入图片说明

我有多个问题,所以这里是:

  1. 我知道在最左边的列中有地址,它们根据前面的字节数递增。我不太明白的是第二列。它是正在执行的指令,但是是十六进制的吗?这是否意味着 push %ebp 相当于 55 ?我不太明白。
  2. 由于这是 IA-32 并且它是小端,我知道最低有效字节存储在最低地址。但是,我不明白这些字节的显示顺序是否根据它们在内存中的位置。看看第 3 行,“8b 55 10”这是否意味着最低地址中有 8b,我会反过来读取它,或者这是否意味着 10 在最低地址,我会反过来读取它?
  3. 左边的这些地址是绝对内存地址还是相对地址?

x86 assembly endianness disassembly att

-1
推荐指数
1
解决办法
508
查看次数

标签 统计

assembly ×1

att ×1

disassembly ×1

endianness ×1

x86 ×1