Voici un tableau de référence des différents instructions du microprocesseur 370 avec vue de leurs prototypes :
Nom | Signification | Opcode | Syntaxe | Description |
---|---|---|---|---|
A | Add | 5Ah | A R1,D2(X2,B2) | Cette instruction permet d'effectuer une addition d'une adresse contenant un double mot (4 octets) à un registre. |
AH | Add Halfword | 4Ah | AH R1,D2(X2,B2) | Cette instruction permet d'effectuer une addition d'une adresse contenant un mot (2 octets) à un registre. |
AL | Add Logical | 5Eh | AL R1,D2(X2,B2) | Cette instruction permet d'effectuer une addition logique d'une adresse contenant un double mot (4 octets) à un registre. |
ALR | Add Logical Registers | 1Eh | ALR R1,R2 | Cette instruction permet d'effectuer une addition logique d'un registre à un autre registre. |
AP | Add Packed | FAh | AP D1(L1,B1),D2(L2,B2) | Cette instruction permet d'effectuer une addition d'une chaine de données à un autre chaine de données. |
AR | Add Registers | 1Ah | AR R1,R2 | Cette instruction permet d'effectuer une addition d'un registre à un autre registre. |
BAL | Branch and Link | 45h | BAL R1,D2(X2,B2) | Cette instruction permet d'effectuer un saut à l'adresse spécifié et place les informations de liaisons dans un registre. |
BALR | Branch and Link Register | 05h | BALR R1,R2 | Cette instruction permet d'effectuer un saut à l'adresse d'un registre et place les informations de liaisons dans un autre registre. |
BAS | Branch and Save | 4Dh | BAS R1,D2(X2,B2) | Cette instruction permet d'effectuer un saut à l'adresse spécifié et place les informations de liaisons dans un registre. |
BASR | Branch and Save Register | 0Dh | BASR R1,R2 | Cette instruction permet d'effectuer un saut à l'adresse d'un registre et place les informations de liaisons dans un autre registre. |
BASSM | Branch, Save and Set Mode | 0Ch | BASSM R1,R2 | Cette instruction permet d'effectuer un saut à l'adresse d'un registre et place les informations de liaisons dans un autre registre et fixe le mode d'adressage. |
BC | Branch on Condition | 47h | BC M1,D2(X2,B2) | Cette instruction permet d'effectuer un saut à l'adresse d'un registre si le masque de l'instruction correspond sinon il passe à l'instruction suivante tout simplement. |
BCR | Branch on Condition Register | 07h | BCR M1,R2 | Cette instruction permet d'effectuer un saut à l'adresse d'un registre si le masque de l'instruction, contenu dans un registre, correspond sinon il passe à l'instruction suivante tout simplement. |
BCT | Branch on Count | 46h | BCT R1,D2(X2,B2) | Cette instruction permet de décrémenter de 1 le registre désigné comme compteur et d'effectuer un saut à l'adresse si le compteur ne vaut pas 0 sinon il passe à l'instruction suivante tout simplement. |
BCTR | Branch on Count Register | 06h | BCTR R1,R2 | Cette instruction permet de décrémenter de 1 le registre désigné comme compteur et d'effectuer un saut à l'adresse, contenu dans un registre, si le compteur ne vaut pas 0 sinon il passe à l'instruction suivante tout simplement. |
BSM | Branch and Set Mode | 0Bh | BSM R1,R2 | Cette instruction permet d'effectuer un saut à l'adresse d'un registre et fixe le mode d'adressage. |
BXH | Branch on Index High | 86h | BXH R1,R3,D2(B2) | Cette instruction permet d'incrémenter le registre désigné comme index et d'effectuer un saut à l'adresse si le condition de comparaison d'inférieur est satisfaite sinon il passe à l'instruction suivante tout simplement. |
BXLE | Branch on Index Low/Equal | 87h | BXLE R1,R3,D2(B2) | Cette instruction permet d'incrémenter le registre désigné comme index et d'effectuer un saut à l'adresse si le condition de comparaison d'inférieur ou égale est satisfaite sinon il passe à l'instruction suivante tout simplement. |
C | Compare | 59h | C R1,D2(X2,B2) | Cette instruction permet d'effectuer la comparaison d'une chaine de données et d'un registre |
CDS | Compare Double and Swap | BBh | CDS R1,R3,D2(B2) | Cette instruction permet d'effectuer la comparaison d'une opérande et d'un registre. S'ils sont égales, alors l'autre registre est copié dans l'opérande |
CH | Compare Halfword | 49h | CH R1,D2(X2,B2) | Cette instruction permet d'effectuer la comparaison d'une chaine de données et d'un registre de taille de 2 octets (simple mot) |
CL | Compare Logical | 55h | CL R1,D2(X2,B2) | Cette instruction permet d'effectuer la comparaison logique d'une chaine de données et d'un registre |
CLC | Compare Logical Characters | D5h | CLC D1(L,B1),D2(B2) | Cette instruction permet d'effectuer la comparaison logique de deux chaines de caractères |
CLCL | Compare Logical Characters Long | 0Fh | CLCL R1,R2 | Cette instruction permet d'effectuer la comparaison logique de deux chaines de caractères de grande taille |
CLI | Compare Logical Immediate | 95h | CLI D1(B1),I2 | Cette instruction permet d'effectuer la comparaison logique d'une chaine de données et d'une valeur immédiate |
CLM | Compare Logical under Mask | BDh | CLM R1,M3,D2(B2) | Cette instruction permet d'effectuer la comparaison avec un masque d'une chaine de données et d'un registre |
CLR | Compare Logical Registers | 15h | CLR R1,R2 | Cette instruction permet d'effectuer la comparaison logique d'un registre et d'un autre registre |
CP | Compare Packed | F9h | CP D1(L1,B1),D2(L2,B2) | Cette instruction permet d'effectuer la comparaison de deux chaines de données |
CR | Compare Registers | 19h | CR R1,R2 | Cette instruction permet d'effectuer la comparaison d'un registre et d'un autre registre |
CS | Compare and Swap | BAh | CS R1,R3,D2(B2) | Cette instruction permet d'effectuer la comparaison d'une opérande et d'un registre. S'ils sont égales, alors l'autre registre est copié dans l'opérande |
CVB | Convert to Binary | 4Fh | CVB R1,D2(X2,B2) | Cette instruction permet d'effectuer la conversion d'un décimal, contenu dans une opérande, à un nombre binaire retourner dans un registre |
CVD | Convert to Decimal | 4Eh | CVD R1,D2(X2,B2) | Cette instruction permet d'effectuer la conversion d'un nombre binaire, contenu dans une opérande, à un décimal retourner dans un registre |
D | Divide | 5Dh | D R1,D2(X2,B2) | Cette instruction permet d'effectuer la division d'une paire de registres par une opérande |
DP | Divide Packed | FDh | DP D1(L1,B1),D2(L2,B2) | Cette instruction permet d'effectuer la division d'une chaine de données par une autre chaine de données |
DR | Divide Registers | 1Dh | DR R1,R2 | Cette instruction permet d'effectuer la division d'une paire de registres par une registre |
ED | Edit | DEh | ED D1(L1,B1),D2(B2) | Cette instruction permet d'intégrer une chaine de données à une autre chaine de données |
EDMK | Edit and Mark | DFh | EDMK D1(L1,B1),D2(B2) | Cette instruction permet d'intégrer une chaine de données à une autre chaine de données avec un masque |
EX | Execute | 44h | EX R1,D2(X2,B2) | Cette instruction permet d'exécuter le contenu du registre spécifié. |
IC | Insert Character | 43h | IC R1,D2(X2,B2) | Cette instruction permet d'insérer des bits d'une opérande dans un registre |
ICM | Insert Character under Mask | BFh | ICM R1,M3,D2(B2) | Cette instruction permet d'insérer des bits d'une opérande de masque de contrôle dans un registre |
L | Load | 58h | L R1,D2(X2,B2) | Cette instruction permet de charger une adresse de 4 octets dans un registre |
LA | Load Address | 41h | LA R1,D2(X2,B2) | Cette instruction permet de charger une adresse dans un registre |
LCR | Load Complement Registers | 13h | LCR R1,R2 | Cette instruction permet d'effectuer le complément d'une registre |
LH | Load Halfword | 48h | LH R1,D2(X2,B2) | Cette instruction permet de charger une adresse de 2 octets dans la partie haute d'un registre de 4 octets |
LM | Load Multiple | 98h | LM R1,R3,D2(B2) | Cette instruction permet de charger un ensemble de registre, situé dans l'intervalle spécifié, dans une opérande |
LNR | Load Negative | 11h | LNR R1,R2 | Cette instruction permet d'effectuer le complément de la valeur absolue d'une registre |
LPR | Load Postive Registers | 10h | LPR R1,R2 | Cette instruction permet d'effectuer la valeur absolue d'une registre |
LR | Load Register | 18h | LR R1,R2 | Cette instruction permet de copier un registre dans un autre registre |
LTR | Load and Test Register | 12h | LTR R1,R2 | Cette instruction permet de copier un registre dans un autre registre et effectue un teste de celui-ci |
M | Multipy | 5Ch | M R1,D2(X2,B2) | Cette instruction permet d'effectuer la multiplication de l'opérande et du seconde registre de la paire et de mettre le résultat dans un registre |
MH | Multipy Halfword | 4Ch | MH R1,D2(X2,B2) | Cette instruction permet d'effectuer la multiplication de l'opérande et du registre et de mettre le résultat dans le registre |
MP | Multipy Packed | FCh | MP D1(L1,B1),D2(L2,B2) | Cette instruction permet d'effectuer la multiplication de deux opérandes et de mettre le résultat dans la première opérande |
MR | Multipy Registers | 1Ch | MR R1,R2 | Cette instruction permet d'effectuer la multiplication de deux registres et de mettre le résultat dans le première registre |
MVC | Move Characters | D2h | MVC D1(L,B1),D2(B2) | Cette instruction permet de copier un bloc de données dans une autre bloc de données |
MVCIN | Move Inverse | E8h | MVCIN D1(L,B1),D2(B2) | Cette instruction permet de copier un bloc de données dans une autre bloc de données dans le sens inverse |
MVCL | Move Characters Long | 0Eh | MVCL R1,R2 | Cette instruction permet de copier un bloc de données de grande taille dans autre une bloc de données |
MVI | Move Immediate | 92h | MVI D1(B1),I2 | Cette instruction permet de copier une valeur immédiate dans une opérande |
MVN | Move Numerics | D1h | MVN D1(L,B1),D2(B2) | Cette instruction permet de copier les 4 bits du haut d'un octet d'un bloc de données dans une autre bloc de données |
MVO | Move with Offset | F1h | MVO D1(L1,B1),D2(L2,B2) | Cette instruction permet de copier les 4 bits du haut d'un octet d'un bloc de données dans les 4 bits du bas d'un autre bloc de données |
MVZ | Move Zones | D3h | MVZ D1(L,B1),D2(B2) | Cette instruction permet de copier les 4 bits du gauche d'un octet d'un bloc de données dans une autre bloc de données |
N | aNd | 54h | N R1,D2(X2,B2) | Cette instruction permet d'effectuer une opération de «Et binaire» d'une opérande à un registre |
NC | aNd Characters | D4h | NC D1(L,B1),D2(B2) | Cette instruction permet d'effectuer une opération de «Et binaire» d'un bloc de données à un autre bloc de données |
NI | aNd Immediate | 94h | NI D1(B1),I2 | Cette instruction permet d'effectuer une opération de «Et binaire» d'une valeur immédiate à un registre |
NR | aNd Registers | 14h | NR R1,R2 | Cette instruction permet d'effectuer une opération de «Et binaire» d'un registre à un autre registre |
O | Or | 56h | O R1,D2(X2,B2) | Cette instruction permet d'effectuer une opération de «Ou binaire» d'une opérande à un registre |
OC | Or Characters | D6h | OC D1(L,B1),D2(B2) | Cette instruction permet d'effectuer une opération de «Ou binaire» d'un bloc de données à un autre bloc de données |
OI | Or Immediate | 96h | OI D1(B1),I2 | Cette instruction permet d'effectuer une opération de «Ou binaire» d'une valeur immédiate à un registre |
OR | Or Registers | 16h | OR R1,R2 | Cette instruction permet d'effectuer une opération de «Ou binaire» d'un registre à un autre registre |
PACK | Pack | F2h | PACK D1(L1,B1),D2(L2,B2) | Cette instruction permet de copier un bloc de données de décimal dans un bloc de données compacté |
S | Subtract | 5Bh | S R1,D2(X2,B2) | Cette instruction permet d'effectuer la soustraction d'une opérande à un registre |
SH | Subtract Halfword | 4Bh | SH R1,D2(X2,B2) | Cette instruction permet d'effectuer la soustraction d'une opérande de 2 octets à un registre |
SL | Subtract Logical | 5Fh | SL R1,D2(X2,B2) | Cette instruction permet d'effectuer la soustraction logique d'une opérande à un registre |
SLA | Shift Left Single | 8Bh | SLA R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la gauche, du nombre de position spécifié par l'opérande, d'un registre de 32 bits. Seul les bits 1 à 31 sont déplacés, puis le bit 0 est utilisé comme signe (+ ou -). |
SLDA | Shift Left Double | 8Fh | SLDA R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la gauche, du nombre de position spécifié par l'opérande, d'un registre de 64 bits. Seul les bits 1 à 63 sont déplacés, puis le bit 0 est utilisé comme signe (+ ou -). |
SLDL | Shift Left Double Logical | 8Dh | SLDL R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits logique vers la gauche, du nombre de position spécifié par l'opérande, d'un registre de 64 bits. |
SLL | Shift Left Single Logical | 89h | SLL R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la gauche, du nombre de position spécifié par l'opérande, d'un registre de 32 bits. |
SLR | Subtract Logical Registers | 1Fh | SLR R1,R2 | Cette instruction permet d'effectuer la soustraction logique d'un registre à un autre registre |
SP | Subtract Packed | FBh | SP D1(L1,B1),D2(L2,B2) | Cette instruction permet d'effectuer la soustraction d'un bloc de données à un autre bloc de données |
SR | Subtract Registers | 1Bh | SR R1,R2 | Cette instruction permet d'effectuer la soustraction d'un registre à un autre registre |
SRA | Shift Right Single | 8Ah | SRA R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 32 bits. Seul les bits 1 à 31 sont déplacés, puis le bit 0 est utilisé comme signe (+ ou -). |
SRDA | Shift Right Double | 8Eh | SRDA R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 64 bits. Seul les bits 1 à 63 sont déplacés, puis le bit 0 est utilisé comme signe (+ ou -). |
SRDL | Shift Right Double Logical | 8Ch | SRDL R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits logique vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 64 bits. |
SRL | Shift Right Single Logical | 88h | SRL R1,D2(B2) | Cette instruction permet d'effectuer un décalage de bits vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 32 bits. |
SRP | Shift and Round Decimal | F0h | SRP D1(L1,B1),D2(B2),I3 | Cette instruction permet d'effectuer un décalage et d'arrondir un bloc de données. |
ST | Store | 50h | ST R1,D2(X2,B2) | Cette instruction permet de copier un registre dans l'opérande spécifié. |
STC | Store Character | 42h | STC R1,D2(X2,B2) | Cette instruction permet de copier les bits de 24 à 31 dans l'opérande spécifié. |
STCM | Store Character under Mask | BEh | STCM R1,M3,D2(B2) | Cette instruction permet de copier les bits de 24 à 31 dans l'opérande spécifié avec un masque. |
STH | Store Halfword | 40h | STH R1,D2(X2,B2) | Cette instruction permet de copier les bits de 16 à 31 dans l'opérande spécifié. |
STM | Store Multiple | 90h | STM R1,R3,D2(B2) | Cette instruction permet de charger une opérande dans l'ensemble de registre situé dans l'intervalle spécifié |
SVC | Supervisor Call | 0Ah | SVC I1 | Cette instruction permet d'appeler une interruption de superviseur |
TM | Test under Mask | 91h | TM D1(B1),I2 | Cette instruction permet d'effectuer un teste d'un masque de bit à bit. |
TR | Translate | DCh | TR D1(L1,B1),D2(B2) | Cette instruction permet de copier un octet à répétition dans un bloc de données |
TRT | Translate and Test | DDh | TRT D1(L1,B1),D2(B2) | Cette instruction permet de copier un octet à répétition dans un bloc de données en sélectionnant une fonction d'octets. |
UNPK | Unpack | F3h | UNPK D1(L1,B1),D2(L2,B2) | Cette instruction permet de copier un bloc de données compacté dans un bloc de données en décimal |
X | eXclusive Or | 57h | X R1,D2(X2,B2) | Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'une opérande à un registre |
XC | eXclusive Or Characters | D7h | XC D1(L,B1),D2(B2) | Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'un bloc de données à un autre bloc de données |
XI | eXclusive Or Immediate | 97h | XI D1(B1),I2 | Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'une valeur immédiate à un registre |
XR | eXclusive Or Registers | 17h | XR R1,R2 | Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'un registre à un autre registre |
ZAP | Zero Add Packed | F8h | ZAP D1(L1,B1),D2(L2,B2) | Cette instruction permet de réinitialiser à 0 un bloc de données et d'ajouter des données compactés à celui-ci. |
Dernière mise à jour : Samedi, le 1er juillet 2017