objdump дизассемблирует исполняемый файл, скомпилированный с -marm как инструкции для большого пальца
Я скомпилировал некоторый код с помощью gcc -marm, а затем, когда я пытаюсь разобрать его с помощью objdump, половина инструкций составляет 16 бит, так что я предполагаю, что это инструкции большого пальца. Зачем?
Я видел этот вопрос: objdump и ARM против большого пальца
Поэтому я попытался разобрать его с помощью objdump -marm -b binary -D, однако разборка кажется очень странной...
Как я могу узнать, является ли это gcc, который использовал инструкции thumb, несмотря на параметр -marm, или это objdump, который глючит?
РЕДАКТИРОВАТЬ: вот часть разборки с 16-битными инструкциями:
Разборка раздела.init:
00008304 <_init>: 8304: b508 push {r3, lr}
8306: f000 f849 bl 839c
830a: BF00 нет
830c: bd08 pop {r3, pc}