Thumb
Материал из Википедии — свободной энциклопедии
Thumb — режим процессоров ARM, в котором используется сокращенная система команд. Она состоит из 36 команд, взятых из стандартного набора 32-разрядных команд архитектуры ARM и преобразованных до 16-разрядных кодов.
Длина команд Thumb составляет половину длины стандартных 32-разрядных команд что, позволяет существенно сократить необходимые объёмы памяти программ (порядка 30%) и, кроме того позволяет использовать более дешёвую 16-разрядную память.
При выполнении эти команды дешифруются процессором в эквивалентные операции ARM, выполняемые за то же количество тактов. Переключение ARM <-> THUMB возможно командой BX либо переключением режима работы по прерыванию/исключению.
Набор команд THUMB неортогонален и малоэлегантен. Команды позволяют работать напрямую лишь с 8-ю младшими РОН; к 8-и старшим РОН (включая SP, LR, PC) применимы лишь несколько операций. В наборе недоступны следующие возиожности ARM: умножение с накоплением/расширением, сопроцесорные операции, доступ к PSR и регистрам других контекстов, атомарный обмен SWAP. Недоступны условное исполнение, сдвиг 2-го операнда в командах общего назначения, трехадресные операции (кроме ADD и SUB), автоинкрементный и автодекрементный режимы адресации. Все команды обработки данных устанавливают коды условий. Команда BL вынужденно кодируется в два слова, причем смещение ограничено 23 битами. Доступ к стеку (мультирегистровые команды PUSH и POP) организован принудительно по 13-у регистру, стек растет вниз.
[править] См. также
Jazelle Thumb-2 Thumb-2EE NEON VFP
Более подробная информация - в англоязычной статье en:ARM architecture