0

我用 gcc -marm 编译了一些代码,然后当我尝试用 objdump 反汇编时,一半的指令是 16 位的,所以我猜是拇指指令。为什么 ?

我见过这个问题: objdump and ARM vs Thumb

所以我尝试用objdump -marm -b binary -D反汇编它,但是反汇编似乎很奇怪......

我怎么知道这是尽管使用了 -marm 选项但使用拇指指令的 gcc,还是有问题的 objdump?

编辑:这是用 16 位指令进行反汇编的一小部分:

.init 部分的反汇编:

00008304 <_init>: 8304: b508 push {r3, lr}
8306: f000 f849 bl 839c
830a: bf00 nop
830c: bd08 pop {r3, pc}

4

0 回答 0