问题
I get the following output when I disassembled a simple ARM binary file using the command "arm-linux-gnueabihf-objdump -d a.out"
00008480 <_start>:
8480: f04f 0b00 mov.w fp, #0
8484: f04f 0e00 mov.w lr, #0
8488: bc02 pop {r1}
848a: 466a mov r2, sp
What do different columns represent here? For example, 8480 and f04f 0b00 (from the 2nd line of code)
回答1:
The first column is the address of the code in memory. 0x8480
means the memory address of this piece of code is 0x8480
.
The second column is the hex representation of the code. f04f 0b00
means from memory address 0x8480
(included) to 0x8484
(excluded), there are 4 bytes of code, f0
, 4f
, 0b
, 00
.
The remaining is the disassembled code. They are disassembled from the code in second column.
来源:https://stackoverflow.com/questions/48552267/understanding-disassembled-binary-from-objdump-what-are-the-fields-from-the-ou