2013-08-08 41 views
5

Le istruzioni in modalità pollice sono 2 byte e le istruzioni in modalità ARM sono 4 byte. lo screenshot è uno smontaggio delle istruzioni in modalità pollice. perché vedo istruzioni a 4 byte mescolate con le istruzioni di 2 byte? qualcuno può spiegarlo?modalità pollice manuale istruzionibyby

grazie in anticipo.

enter image description here

+2

Perché è ** thumb-2 **. –

+0

La vera domanda è perché queste due istruzioni mov 4 byte quando possono essere codificate come istruzioni a 2 byte (thumb1). –

+3

* thumb-1 * non ha affatto codici opzionali a 32 bit. Solo * thumb-2 * ha 'mov.w', ecc. Un processore non può cambiare le modalità tra le istruzioni (fino a un BLX, ecc.), Quindi questo codice deve essere * thumb-2 *. Anche 'bl' e' blx' sono 16bit in * thumb-1 *. –

risposta

1

Cortex M micros possono funzionare solo in modalità Thumb-2, che è qualcosa tra modalità pollice e ARM. Il set di istruzioni Thumbs-2 include istruzioni a 16 e 32 bit e il processore non necessita di modalità di commutazione per eseguire entrambi i tipi di istruzioni.

0

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

o pdf

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

tecnologia Thumb-2 è disponibile nella ARMv6T2 e architetture successive. La tecnologia Thumb-2 è un importante miglioramento del set di istruzioni Thumb. Aggiunge istruzioni a 32 bit che possono essere mescolate liberamente con istruzioni a 16 bit in un programma. Le ulteriori istruzioni Thumb codificate a 32 bit consentono a Thumb di coprire la maggior parte delle funzionalità del set di istruzioni ARM. La disponibilità di istruzioni a 16 e 32 bit consente alla tecnologia Thumb-2 di combinare la densità del codice delle versioni precedenti di Thumb con le prestazioni del set di istruzioni ARM.