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

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