Qu'est-ce que L'Instruction Arm Thumb set?

Sous "the Thumb instruction set" dans la section 1-34 de "ARM11TechnicalRefManual" il a dit que:

" L'ensemble D'instructions Thumb est un sous-ensemble des instructions ARM 32 bits les plus couramment utilisées.Les instructions du pouce sont de 16 bits, et ont une instruction de bras correspondante de 32 bits qui a le même effet sur le modèle de processeur."

est-ce que quelqu'un peut expliquer plus à propos de cette deuxième phrase en particulier et dire comment le processeur l'exécute?

30

1 réponses

le processeur ARM a 2 jeux d'instructions, le traditionnel jeu de bras, où les instructions sont toutes de 32 bits, et le jeu de pouce plus condensé, où les instructions les plus courantes sont de 16 bits (et certaines sont de 32 bits). L'instruction à exécuter peut être choisie par le développeur, et une seule instruction peut être active (c'est-à-dire qu'une fois le processeur commuté en mode pouce, toutes les instructions seront décodées en utilisant le pouce au lieu du bras).

bien qu'ils soient des instructions différentes ensembles, ils partagent des fonctionnalités similaires, et peuvent être représentés en utilisant le même langage d'assemblage. Par exemple, l'instruction

ADDS  R0, R1, R2

peut être compilé pour ARM (E0910002 / 11100000 10010001 00000000 00000010) ou Pouce (1888 / 00011000 10001000). Bien sûr, ils remplissent la même fonction (ajoutez r1 et r2 et stockez le résultat sur r0), même s'ils ont des encodages différents. C'est le sens de les instructions du pouce sont de 16 bits de long,et ont un bras correspondant de 32 bits l'instruction qui a le même effet sur le modèle du processeur.

chaque * instruction dans L'encodage pouce a aussi un encodage correspondant dans ARM, qui est signifié par la phrase "sous-ensemble".


*: pas strictement vrai, il n'y a pas d'instruction" IT "dans ARM, bien que ARM n'ait pas besoin de" IT " de toute façon (il sera ignoré par l'assembleur).

36
répondu kennytm 2012-05-17 15:22:29