Section courante

A propos

Section administrative du site

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

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