режим большого пальца руки 4-байтовые инструкции

Инструкции режима большого пальца занимают 2 байта, а инструкции режима ARM — 4 байта. скриншот представляет собой разбор инструкций режима большого пальца. почему я вижу 4-байтовые инструкции, смешанные с 2-байтовыми инструкциями?? может кто-нибудь объяснить это?

заранее спасибо.

введите здесь описание изображения


person daehee    schedule 08.08.2013    source источник
comment
Потому что это thumb-2.   -  person artless noise    schedule 08.08.2013
comment
Настоящий вопрос заключается в том, почему эти две инструкции mov 4-байтовые, когда они могут быть закодированы как 2-байтовые (thumb1) инструкции.   -  person Pete Fordham    schedule 08.08.2013
comment
thumb-1 вообще не имеет 32-битных кодов операций. Только thumb-2 имеет mov.w и т. д. Процессор не может переключать режимы между инструкциями (до BLX и т. д.), поэтому этот код должен быть thumb-2. Даже bl и blx являются 16-битными в thumb-1.   -  person artless noise    schedule 08.08.2013


Ответы (2)


http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471i/CHDFEDDB.html

или pdf

http://infocenter.arm.com/help/topic/com.arm.doc.dui0471i/DUI0471I_developing_for_arm_processors.pdf

Технология Thumb-2 доступна в ARMv6T2 и более поздних архитектурах. Технология Thumb-2 представляет собой значительное усовершенствование набора инструкций Thumb. Он добавляет 32-битные инструкции, которые можно свободно смешивать с 16-битными инструкциями в программе. Дополнительные 32-битные закодированные инструкции Thumb позволяют Thumb покрывать большую часть функциональности набора инструкций ARM. Наличие 16-битных и 32-битных инструкций позволяет технологии Thumb-2 сочетать плотность кода более ранних версий Thumb с производительностью набора инструкций ARM.

person Temístocles Chalaça    schedule 08.07.2015

Микропроцессоры Cortex M могут работать только в режиме Thumb-2, что является чем-то средним между режимами большого пальца и ARM. Набор инструкций Thumbs-2 включает 16- и 32-битные инструкции, и процессору не нужно переключать режимы для выполнения обоих типов инструкций.

person user2564741    schedule 05.11.2013
comment
Кодировки 32-битных инструкций Thumb-2 отличаются от кодировок инструкций режима ARM. Они просто имеют одинаковую длину, когда для данной комбинации инструкции и операндов невозможно 16-битное короткое кодирование. Например, они не используют верхние 4 бита для предсказания, вам все равно нужна инструкция .it в режиме Thumb2. - person Peter Cordes; 15.05.2019