Voici un tableau de référence des différents instructions du microprocesseur ARM :
Nom | Description |
---|---|
ADC | Cette instruction permet d'effectuer une addition en ajoutant également la valeur du drapeau de retenue. |
ADD | Cette instruction permet d'effectuer une addition. |
ADR | Cette instruction permet d'effectuer le chargement d'adresse de programme relatif ou de registre relatif dans un registre. |
ADRL | Cette instruction permet d'effectuer le chargement d'adresse large de programme relatif ou de registre relatif dans un registre. |
AND | Cette instruction permet d'effectuer un «Et binaire» avec 2 opérandes. |
ASR | Cette instruction permet d'effectuer le décalage arithmétique de bits vers la droite. |
B | Cette instruction permet d'effectuer un saut à l'adresse spécifié. |
BFC | Cette instruction permet de fixer avec la valeur 0 un champ de bits. |
BFI | Cette instruction permet d'insérer un ou des bits dans un champ de bits. |
BIC | Cette instruction permet de fixer à la valeur 0 des bits en effectuant un «Et binaire». |
BKPT | Cette instruction permet de provoquer un point d'arrêt d'entrer en mode de déboguage. |
BL | Cette instruction permet d'appeler un sous-programme. |
BLX | Cette instruction permet d'effectuer un saut et change le jeu d'instructions et indique la largeur de données. |
BX | Cette instruction permet d'effectuer un saut et change le jeu d'instructions. |
BXJ | Cette instruction permet d'effectuer un saut et change pour l'état de Jazelle. |
CBNZ | Cette instruction permet d'effectuer une comparaison et branchement si ne vaut pas zéro. |
CBZ | Cette instruction permet d'effectuer une comparaison et branchement si vaut zéro. |
CDP | Cette instruction permet d'effectuer des opérations de données de coprocesseur avec condition. |
CDP2 | Cette instruction permet d'effectuer des opérations de données de coprocesseur. |
CLREX | Cette instruction permet d'effectuer un effacement exclusif. |
CLZ | Cette instruction permet de compter le nombre de zéro dans un registre et de retourner le résultat. |
CMP | Cette instruction permet d'effectuer la comparaison d'opérande. |
CMN | Cette instruction permet d'effectuer la comparaison négative d'opérande. |
CPS | Cette instruction permet de changer l'état du processeur. |
CPY | Cette instruction permet de copier une valeur d'un registre vers un autre. |
DBG | Cette instruction permet d'indiquer un indice pour le déboguage. |
DMB | Cette instruction permet d'indiquer une barrière de mémoire de données. |
DSB | Cette instruction permet d'indiquer une barrière de synchronisation de données. |
EOR | Cette instruction permet d'effectuer un «Ou exclusif binaire» avec 2 opérandes. |
ERET | Cette instruction permet d'indiquer un retour d'une exception. |
HVC | Cette instruction permet d'indiquer un appel hyperviseur. |
ISB | Cette instruction permet d'indiquer une barrière de synchronisation d'instruction. |
IT | Cette instruction permet d'effectuer un test d'une condition «si». |
LDC | Cette instruction permet de transférer des données de la mémoire vers le coprocesseur. |
LDC2 | Cette instruction permet de transférer des données de la mémoire vers le coprocesseur pour l'architecture ARMv5T. |
LSL | Cette instruction permet d'effectuer le décalage de bits logique vers la gauche. |
LSR | Cette instruction permet d'effectuer le décalage de bits logique vers la droite. |
MAR | Cette instruction permet de copier un registre dans un accumulateur de 40 bits. |
MCR | Cette instruction permet de déplacer des données du coprocesseur vers un registre ARM. |
MCR2 | Cette instruction permet de déplacer des données du coprocesseur vers un registre ARM pour l'architecture ARMv5T. |
MCRR | Cette instruction permet de déplacer des données du coprocesseur vers un registre ARM pour l'architecture ARMv6 et les variantes E pour le ARMv5T. |
MCRR2 | Cette instruction permet de déplacer des données du coprocesseur vers un registre ARM pour l'architecture ARMv6. |
MIA | Cette instruction permet d'effectuer une multiplication avec l'accumulateur internes de 40 bits. |
MIAPH | Cette instruction permet d'effectuer une multiplication avec l'accumulateur internes de 40 bits en paquet de demi-mots. |
MIAxy | Cette instruction permet d'effectuer une multiplication avec l'accumulateur internes de 40 bits en demi-mots. |
MLA | Cette instruction permet d'effectuer une multiplication avec l'addition. |
MLS | Cette instruction permet d'effectuer une multiplication avec la soustraction. |
MOV | Cette instruction permet de copier une opérande ou une valeur immédiate dans un registre. |
MOV32 | Cette instruction permet de charger le registre avec une valeur immédiate de 32 bits ou n'importe quelle adresse. |
MOVT | Cette instruction permet de copier la partie du haut du mot d'une opérande dans un registre. |
MRA | Cette instruction permet de copier un accumulateur de 40 bits dans un registre. |
MRC | Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6 et les variants E d'une architecture ARMv5T. |
MRC2 | Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6. |
MRRC | Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6 et les variants E d'une architecture ARMv5T. |
MRRC2 | Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6. |
MRS (PSR à registre général) | Cette instruction permet de copier le contenu d'un PSR ver un registre général. |
MRS (registre de coprocesseur à registre ARM) | Cette instruction permet de copier un registre ARM vers un registre de coprocesseur. |
MSR (registre ARM à registre de coprocesseur) | Cette instruction permet de copier un registre du système de coprocesseur à un registre ARM. |
MSR (registre à PSR) | Cette instruction permet de charger immédiatement une valeur ou le contenu d'un registre général dans les champs spécifié d'un PSR (Program Status Register). |
MUL | Cette instruction permet d'effectuer une multiplication. |
MVN | Cette instruction permet de copier une négation d'opérande dans un registre. |
NEG | Cette instruction permet d'effectuer la négation d'une valeur dans un registre. |
NOP | Cette instruction permet de faire aucune opération. |
ORN | Cette instruction permet de faire une négation de «Ou binaire». |
ORR | Cette instruction permet d'effectuer un «Ou binaire» avec 2 opérandes. |
PKHBT | Cette instruction permet de compacter une combinaison de demi-mot d'un registre avec un demi-mot d'un autre registre du bas vers le haut. |
PKHTB | Cette instruction permet de compacter une combinaison de demi-mot d'un registre avec un demi-mot d'un autre registre du haut vers le bas. |
PLD | Cette instruction permet d'effectuer un préchargement de données afin que le processeur signale au système de mémoire qu'un changement de donnée provenant d'une adresse est probablement sur le point de se produire. |
PLI | Cette instruction permet d'effectuer un préchargement d'instruction afin que le processeur signale au système de mémoire qu'un changement d'instruction provenant d'une adresse est probablement sur le point de se produire. |
POP | Cette instruction permet de désempiler des registres d'une pile descendante complète. |
PUSH | Cette instruction permet d'empiler des registres d'une pile descendante complète. |
QADD | Cette instruction permet d'effectuer une saturation d'addition de valeur entière. |
QADD8 | Cette instruction permet d'effectuer une saturation parallèle d'addition d'un demi-octet. |
QADD16 | Cette instruction permet d'effectuer une saturation parallèle d'addition d'un demi-mot. |
QASX | Cette instruction permet d'effectuer une addition de saturation de parallèle et soustraction de demi-mots avec échange. |
QDADD | Cette instruction permet d'effectuer une saturation double et d'effectuer un addition. |
QDSUB | Cette instruction permet d'effectuer une saturation double et une soustraction de valeur entière. |
QSAX | Cette instruction permet d'effectuer une saturation parallèle de soustraction et d'addition de demi-mots avec échange de valeur entière. |
QSUB | Cette instruction permet d'effectuer une saturation de soustraction de valeur entière. |
QSUB8 | Cette instruction permet d'effectuer une saturation parallèle de soustraction de demi-octet de valeur entière. |
QSUB16 | Cette instruction permet d'effectuer une saturation parallèle de soustraction de demi-mot de valeur entière. |
RBIT | Cette instruction permet d'inverser l'ordre des bits dans un mot de 32 bits. |
REV | Cette instruction permet d'inverser l'ordre d'octets dans un mot. |
REV16 | Cette instruction permet d'inverser l'ordre des octets dans chaque demi-mot indépendamment. |
REVSH | Cette instruction permet d'inverser l'ordre des octets dans le bas de demi-mot et d'étendre les signes à 32 bits. |
RFE | Cette instruction permet de retourner d'une exception. |
ROR | Cette instruction permet d'effectuer une rotation de bits vers la droite. |
RRX | Cette instruction permet d'effectuer une rotation de bits vers la droite avec le bit de retenue. |
RSB | Cette instruction permet d'effectuer une soustraction inversé. |
RSC | Cette instruction permet d'effectuer une soustraction inversé en supprimant également la valeur du drapeau de retenue. |
SADD8 | Cette instruction permet d'effectuer une addition parallèle d'octets avec des valeurs signés. |
SADD16 | Cette instruction permet d'effectuer une addition parallèle de demi-mot avec des valeurs signés. |
SASX | Cette instruction permet d'effectuer une addition parallèle entière et une soustraction de demi-mots avec échange. |
SBC | Cette instruction permet d'effectuer une soustraction en supprimant également la valeur du drapeau de retenue. |
SBFX | Cette instruction permet d'extraire un champ de bit entier. |
SDIV | Cette instruction permet d'effectuer une division de nombre entier. |
SEL | Cette instruction permet de sélectionner les octets de chaque opérande en fonction de l'état des drapeaux GE de APSR. |
SETEND | Cette instruction permet de fixer le bit de boutisme dans le CPSR, sans affecter les autres bits dans le CPSR. |
SEV | Cette instruction permet de fixer l'événement. |
SHADD8 | Cette instruction permet d'effectuer une moitié d'addition de parallèle d'octets avec des valeurs signés. |
SHADD16 | Cette instruction permet d'effectuer une moitié d'addition parallèle de demi-mot avec des valeurs signés. |
SHASX | Cette instruction permet d'effectuer une addition parallèle et de soustraire des demi-mots avec échange avec des valeurs entière. |
SHSAX | Cette instruction permet d'effectuer une soustraction parallèle et d'ajouter des demi-mots avec échange avec des valeurs entière. |
SHSUB8 | Cette instruction permet d'effectuer une moitié de soustraction de parallèle d'octets avec des valeurs signés. |
SHSUB16 | Cette instruction permet d'effectuer une moitié de soustraction parallèle de demi-mot avec des valeurs signés. |
SMC | Cette instruction permet d'appeler le moniteur de surveillance. |
SMLAxy | Cette instruction permet d'effectuer une multiplication entière, avec une opérande 16 bits, un résultat 32 bits et un accumulateur à additionner. |
SMLAD | Cette instruction permet d'effectuer l'addition de deux multiplications d'entier avec l'accumulateur. |
SMLAL | Cette instruction permet d'effectuer une multiplication d'entier long avec accumulateur. |
SMLALD | Cette instruction permet d'effectuer l'addition de deux multiplications d'entier avec l'accumulateur long. |
SMLALxy | Cette instruction permet d'effectuer une multiplication de deux entiers 16 bits et d'un accumulateur long. |
SMLAWy | Cette instruction permet d'effectuer une multiplication d'un entier 32 bits avec un entier 16 bits et de l'accumulateur. |
SMLSD | Cette instruction permet d'effectuer une double multiplication 16 bits entière avec la soustraction des produits et de l'accumulation de 32 bits. |
SMLSLD | Cette instruction permet d'effectuer une double multiplication 16 bits entière avec la soustraction des produits et de l'accumulation de 64 bits. |
SMMLA | Cette instruction permet d'effectuer une multiplication du mot le plus significatif signé avec une accumulation. |
SMMLS | Cette instruction permet d'effectuer une multiplication du mot entier le plus significatif avec une soustraction. |
SMMUL | Cette instruction permet d'effectuer une multiplication du mot entier le plus significatif. |
SMUAD | Cette instruction permet d'effectuer l'addition de deux multiplications d'entier. |
SMULxy | Cette instruction permet d'effectuer une multiplication de deux entiers 16 bits. |
SMULL | Cette instruction permet d'effectuer une multiplication d'entier long. |
SMULWy | Cette instruction permet d'effectuer une large multiplication avec des opérandes 32 bits et 16 bits, et fournissant une somme de 32 bits. |
SMUSD | Cette instruction permet d'effectuer la soustraction de deux multiplications d'entier. |
SRS | Cette instruction permet d'entreposer l'état de retour dans une pile. |
SSAT | Cette instruction permet d'effectuer une saturation de mot entier avec un décalage de la droite ou vers la gauche. |
SSAT16 | Cette instruction permet d'effectuer une saturation de deux demi-mots entier. |
SSAX | Cette instruction permet d'effectuer un échange de soustraction et d'effectuer une addition parallèle de demi-mot avec des valeurs signés. |
SSUB8 | Cette instruction permet d'effectuer une soustraction parallèle d'octets avec des valeurs signés. |
SSUB16 | Cette instruction permet d'effectuer une soustraction parallèle de demi-mot avec des valeurs signés. |
STC | Cette instruction permet de transférer des données entre la mémoire et le coprocesseur. |
STC2 | Cette instruction permet de transférer des données entre la mémoire et le coprocesseur avec une architecture ARMv5T. |
STM | Cette instruction permet d'entreposer les registres multiples. |
STR (déplacement immédiat) | Cette instruction permet d'entreposer un déplacement immédiat, un déplacement de registre de pré-index, ou un déplacement postage d'index immédiat. |
STR (déplacement de registre) | Cette instruction permet d'entreposer un déplacement de registre, un déplacement de registre de pré-index, ou un déplacement de registre de postage d'index. |
STR (sans privilège) | Cette instruction permet d'entreposer un octet, un demi-mot ou un mot sans privilège. |
STREX | Cette instruction permet d'effectuer l'entreposage d'un registre exclusif. |
SUB | Cette instruction permet d'effectuer une soustraction. |
SUBS | Cette instruction permet d'effectuer une soustraction avec un retour d'exception en dehors la pile. |
SVC | Cette instruction permet d'effectuer un appel au superviseur. |
SWP | Cette instruction permet d'échanger des données 32 bits de registre et de mémoire. |
SWPB | Cette instruction permet d'échanger des données 8 bits de registre et de mémoire. |
SXTAB | Cette instruction permet d'étendre les signes de l'octet et d'effectuer une addition entière de 8 à 32 bits. |
SXTAB16 | Cette instruction permet d'étendre le signe de 2 octets avec une addition, et d'étendre 2 valeurs 8 bits à 16 bits. |
SXTAH | Cette instruction permet d'étendre le signe du demi-mot étendue avec une addition, et d'étendre les valeurs 16 bits en 32 bits. |
SXTB | Cette instruction permet d'étendre le signe d'un octet et d'étendre une valeur de 8 bits à 32 bits. |
SXTB16 | Cette instruction permet d'étendre le signe de deux octets. |
SXTH | Cette instruction permet d'étendre le signe d'un demi-mot. |
SYS | Cette instruction permet d'exécuter une instruction du coprocesseur du système. |
TBB | Cette instruction permet de brancher un octet. |
TBH | Cette instruction permet de brancher un demi-mot. |
TEQ | Cette instruction permet d'effectuer le test d'équivalence sur 2 opérandes. |
TST | Cette instruction permet d'effectuer un test «Et binaire» sur 2 opérandes. |
UADD8 | Cette instruction permet d'effectuer une addition parallèle d'octets avec des valeurs non-signés. |
UADD16 | Cette instruction permet d'effectuer une addition parallèle de demi-mot avec des valeurs non-signés. |
UASX | Cette instruction permet d'effectuer une addition parallèle et soustraire un demi-mot avec échange sur des valeurs non-signés. |
UBFX | Cette instruction permet d'extraire un champ de bit de valeurs non-signé. |
UDIV | Cette instruction permet d'effectuer une division de nombre naturel. |
UHADD8 | Cette instruction permet d'effectuer une moitié d'addition de parallèle d'octets avec des valeurs non-signés. |
UHADD16 | Cette instruction permet d'effectuer une moitié d'addition parallèle de demi-mot avec des valeurs non-signés. |
UHASX | Cette instruction permet de réduire de moitié une addition de parallèle et soustraire les demi-mots avec un échange. |
UHSAX | Cette instruction permet de réduire de moitié une soustraction de parallèle et additionne les demi-mots avec un échange. |
UHSUB8 | Cette instruction permet d'effectuer une moitié de soustraction de parallèle d'octets avec des valeurs non-signés. |
UHSUB16 | Cette instruction permet d'effectuer une moitié de soustraction parallèle de demi-mot avec des valeurs non-signés. |
UMAAL | Cette instruction permet d'effectuer la multiplication d'un nombre naturel long avec un double accumulateur. |
UMLAL | Cette instruction permet d'effectuer la multiplication d'un nombre naturel long avec l'accumulateur. |
UMULL | Cette instruction permet d'effectuer la multiplication d'un nombre naturel long. |
UND | Cette instruction permet de générer une instruction architecturellement indéfinie. |
UQADD8 | Cette instruction permet d'effectuer une saturation parallèle d'addition de demi-octet avec des valeurs naturels. |
UQADD16 | Cette instruction permet d'effectuer une saturation parallèle d'addition de demi-mot avec des valeurs naturels. |
UQASX | Cette instruction permet d'effectuer une saturation parallèle d'addition et de soustraction de demi-mots avec échange. |
UQSAX | Cette instruction permet d'effectuer une saturation parallèle de soustraction et d'addition de demi-mots avec échange. |
UQSUB8 | Cette instruction permet d'effectuer une saturation parallèle de soustraction de demi-octet de valeurs naturels. |
UQSUB16 | Cette instruction permet d'effectuer une saturation parallèle de soustraction de demi-mot de valeurs naturels. |
USAD8 | Cette instruction permet d'effectuer une sommation de valeur naturel de différences absolues. |
USADA8 | Cette instruction permet d'effectuer une sommation de valeur naturel de différences absolues et d'accumulation. |
USAT | Cette instruction permet d'effectuer une saturation de mot naturel avec un décalage de la droite ou vers la gauche. |
USAT16 | Cette instruction permet d'effectuer une saturation de deux demi-mots naturel. |
USAX | Cette instruction permet d'effectuer un échange de soustraction et d'effectuer une addition parallèle de demi-mot avec des valeurs non-signés. |
USUB8 | Cette instruction permet d'effectuer une soustraction parallèle d'octets avec des valeurs non-signés. |
USUB16 | Cette instruction permet d'effectuer une soustraction parallèle de demi-mot avec des valeurs non-signés. |
UXTAB | Cette instruction permet d'étendre les zéro de l'octet et d'effectuer une addition naturel. |
UXTAB16 | Cette instruction permet d'étendre les zéro de 2 octets et d'effectuer une addition. |
UXTAH | Cette instruction permet d'étendre les zéro d'un demi-mot et d'effectuer une addition. |
UXTB | Cette instruction permet d'étendre les zéro d'un octet. |
UXTB16 | Cette instruction permet d'étendre les zéro de 2 octets. |
UXTH | Cette instruction permet d'étendre les zéro d'un demi-mot. |
WFE | Cette instruction permet d'attendre après un événement. |
WFI | Cette instruction permet d'attendre après une interruption. |
YIELD | Cette instruction permet d'indiquer au matériel que le processus léger courant effectue une tâche s'il implémenter sinon il effectue un NOP. |
Remarque
- Les nombres naturels correspondent à des nombres non-signés (n'ayant pas de valeur inférieur à 0) et les nombres entiers correspondent à des nombres signés (valeur ayant des valeurs négatives et positives).
Légende
Cette couleur permet d'indiquer que cette instruction est seulement supporté par certains microprocesseur ARM.
Dernière mise à jour : Mardi, le 6 décembre 2016