Записывая коды операций на ARM, я сталкиваюсь с ошибкой.Почему этот код операции не работает должным образом на ARM
8054: e92d1fff push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip}
Вышеупомянутый результат разборки objdump; \xe9\x2d\x1f\xff
- то же самое с push {r0-r12}
.
Но в другой программе, это опкод не работает должным образом нравится:
1e75: e9 .byte 0xe9<BR>
1e76: 1f2d .short 0x1f2d<BR>
1e78: Address 0x06001e78 is out of bounds.
Любые идеи?
Что это за другая программа? –
'1e75: e9' .. Почему ваша инструкция' push' начинается с нечетного адреса? Инструкции ARM должны быть выровнены по слову, а команды Thumb - половину слова выровнены. Кроме того, если вы не столкнулись с процессором ARM с большими номерами, последовательность байтов должна быть «0xff, 0x1f, 0x2d, 0xe9'. – Michael