2013-08-08 23 views
5

Thumb-Modus-Anweisungen sind 2 Bytes und ARM-Modus-Anweisungen sind 4 Bytes. Der Screenshot ist eine Demontage der Daumenmodus-Anweisungen. Warum sehe ich 4-Byte-Anweisungen mit 2byte Anweisungen gemischt ?? kann jemand das erklären?arm thumb mode 4byte anweisungen

danke im voraus.

enter image description here

+2

Weil es ** Daumen-2 ** ist. –

+0

Die eigentliche Frage ist, warum diese zwei mov-Anweisungen 4-Byte sind, wenn sie als 2-Byte-Anweisungen (thumb1) codiert werden könnten. –

+3

* thumb-1 * hat keine 32-Bit Op-Codes. Nur * thumb-2 * hat 'mov.w' usw. Ein Prozessor kann den Modus nicht zwischen den Befehlen wechseln (bis zu einem BLX usw.), daher muss dieser Code * thumb-2 * sein. Sogar "bl" und "blx" sind 16bit in * thumb-1 *. –

Antwort

1

Cortex M Mikros kann nur in Thumb-2-Modus laufen, die etwas zwischen Daumen und ARM-Modi ist. Der Thumbs-2-Befehlssatz enthält 16- und 32-Bit-Befehle, und der Prozessor benötigt keine Umschaltmodi, um beide Befehle auszuführen.

0

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

oder pdf

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

Thumb-2-Technologie ist in der ARMv6T2 und später Architekturen verfügbar. Die Thumb-2-Technologie ist eine wichtige Erweiterung des Thumb-Befehlssatzes. Es fügt 32-Bit-Anweisungen hinzu, die frei mit 16-Bit-Anweisungen in einem Programm gemischt werden können. Mit den zusätzlichen 32-Bit-codierten Thumb-Anweisungen kann Thumb den Großteil der Funktionalität des ARM-Befehlssatzes abdecken. Die Verfügbarkeit von 16-Bit- und 32-Bit-Anweisungen ermöglicht es der Thumb-2-Technologie, die Codedichte früherer Thumb-Versionen mit der Leistung des ARM-Befehlssatzes zu kombinieren.