Voici un tableau de référence des différents instructions du microprocesseur PDP-11 :
Nom | Signification | Opération | Code machine | Syntaxe | Description |
---|---|---|---|---|---|
ADC | Add Carry | d ← d+C | b055DD | ADCb d | Cette instruction permet d'effectuer une addition avec la retenue. |
ADD | Add | d ← s+d | 06SSDD | ADD s,d | Cette instruction permet d'effectuer une addition. |
ASH | Arithmetic Shift | r ← r x 2^s | 072RSS | ASH s,r | Cette instruction permet d'effectuer un décalage arithmétique de bits. |
ASHC | Arithmetic Shift Combined | r ← r x 2^s | 073RSS | ASHC s,r | Cette instruction permet d'effectuer un décalage arithmétique de bits combiné. |
ASL | Arithmetic Shift Left | d ← d x 2 | B063DD | ASLb d | Cette instruction permet d'effectuer un décalage arithmétique de bits vers la gauche. |
ASR | Arithmetic Shift Right | d ← d / 2 | b062DD | ASRb d | Cette instruction permet d'effectuer un décalage arithmétique de bits vers la droite. |
BCC | Branch if Carry Clear | SI C=0 ALLERA a | 1030XX | BCC a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le drapeau de retenue est à 0. |
BCS | Branch if Carry Set | SI C=1 ALLERA a | 1034XX | BCS a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le drapeau de retenue est à 1. |
BEQ | Branch if Equal | SI Z=0 ALLERA a | 0014XX | BEQ a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est égale. |
BGE | Branch if Greater or Equal | SI NxV=0 ALLERA a | 0020XX | BGE a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est supérieur ou égale. |
BGT | Branch if Greater Than | SI Zv{NxV}=0 ALLERA a | 0030XX | BGT a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un teste est supérieur. |
BHI | Branch if Higher | SI C v Z=0 ALLERA a | 1010XX | BHI a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est supérieur. |
BHIS | Branch if Higher or Same | SI C=0 ALLERA a | 1030XX | BHIS a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est supérieur ou la même chose. |
BIC | Bit Clear | d ← d ∩ {~s} | B4SSDD | BICb s,d | Cette instruction permet de fixer la valeur de certains bits à 0. |
BIS | Bit Set (OR) | d ← d U s | B5SSDD | BISb s,d | Cette instruction permet de fixer la valeur de certains bits à 1. |
BIT | Bit Test (AND) | d ∩ s | b3SSDD | BITb s,d | Cette instruction permet de tester la valeur de certains bits. |
BLE | Branch if Less or Equal | SI Z v {NxV}=1 ALLERA a | 0034XX | BLE a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est inférieur ou égale. |
BLO | Branch if Lower | SI C=1 ALLERA a | 1034XX | BLO a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est inférieur. |
BLOS | Branch if Lower or Same | SI C v Z = 1 ALLERA a | 1014XX | BLOS a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est inférieur ou la même chose. |
BLT | Branch if Less Than | SI N x V = 1 ALLERA a | 0024XX | BLT a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est inférieur. |
BMI | Branch if Minus | SI N=1 ALLERA a | 1004XX | BMI a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est négatif. |
BNE | Branch if Not Equal | SI Z=1 ALLERA a | 0010XX | BNE a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test n'est pas égale. |
BPL | Branch if Plus | SI N=0 ALLERA a | 1000XX | BPL a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test est positif. |
BPT | Breakpoint Trap | Vecteur à 14 | 000003 | BPT | Cette instruction permet d'effectuer un point d'arrêt. |
BR | Branch | PC ← PC+2*XX | 0004XX | BR a | Cette instruction permet d'effectuer un saut à l'adresse spécifié. |
BVC | Branch if Overflow Clear | SI V=0 | 1020XX | BVC a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test n'a pas provoqué de débordement de valeur. |
BVS | Branch if Overflow Set | SI V=1 | 1024XX | BVS a | Cette instruction permet d'effectuer un saut à l'adresse spécifié si le résultat d'un test a provoqué un débordement de valeur. |
CALL | Call subroutine | (= JSR PC,d) | 0047DD | CALL d | Cette instruction permet d'appeler un sous-programme. |
CCC | Clear all Condition Codes | {C,N,V,Z} ← 0 | 000257 | CCC | Cette instruction permet de fixer la valeur de tous les drapeaux de conditions à 0. |
CLC | Clear Carry | C ← 0 | 000241 | CLC | Cette instruction permet de fixer la valeur du drapeau de retenue à 0. |
CLN | Clear Negative | N ← 0 | 000250 | CLN | Cette instruction permet de fixer la valeur du drapeau de négation à 0. |
CLR | Clear | d ← 0 | b050DD | CLRb d | Cette instruction permet de fixer la valeur d'une opérande à 0. |
CLV | Clear Overflow | V ← 0 | 000242 | CLV | Cette instruction permet de fixer la valeur du drapeau de débordement à 0. |
CLZ | Clear Zero | Z ← 0 | 000242 | CLZ | Cette instruction permet de fixer la valeur du drapeau du zéro à 0. |
CMP | Compare | s-d | b2SSDD | CMPb s,d | Cette instruction permet d'effectuer une comparaison d'opérandes. |
COM | Complement | d ← ~d | b051DD | COMb d | Cette instruction permet d'effectuer le complément d'une opérande. |
CSM | Call to Supervisor Mode | SI MMR3<3> = 1 ET mode courant ≠ noyau ALORS Superviseur SP ← mode courant SP, temp <15:4> ← <15:4> FIN SI | B051DD | CSM | Cette instruction permet d'appeler le mode superviseur. |
DEC | Decrement | d ← d-1 | b053DD | DECb d | Cette instruction permet d'effectuer la décrémentation d'une opérande. |
DIV | Divide | r ← r/s | 071RSS | DIV s,r | Cette instruction permet d'effectuer une division. |
EMT | Emulator Trap | Vecteur à 30 | 1040TT | EMT t | Cette instruction permet d'appeler le vecteur d'émulation. |
FADD | Floating Add | 07500R | FADD r | Cette instruction permet d'effectuer une addition d'un nombre réel. | |
FDIV | Floating Divide | 07503R | FDIV r | Cette instruction permet d'effectuer une division d'un nombre réel. | |
FMUL | Floating Multiply | 07502R | FMUL r | Cette instruction permet d'effectuer une multiplication d'un nombre réel. | |
FSUB | Floating Subtract | 07501R | FSUB r | Cette instruction permet d'effectuer une soustraction d'un nombre réel. | |
HALT | Halt | 000000 | HALT r | Cette instruction permet d'arrêter. | |
INC | Increment | d ← d+1 | b052DD | INCb d | Cette instruction permet d'effectuer l'incrémentation d'une opérande. |
IOT | Input/Output Trap | Vecteur à 20 | 000004 | IOT | Cette instruction permet d'appeler le vecteur d'entrée/sortie. |
JMP | Jump | PC ← d | 0001DD | JMP d | Cette instruction permet d'effectuer un saut à l'adresse spécifié. |
JSR | Jump to Subroutine | r ← PC,PC ← d | 004RDD | JSR r,d | Cette instruction permet d'effectuer un saut à un sous-programme. |
LDUB | Load Microbreak Register | 170003 | LDUB | Cette instruction permet de charger un registre de microbreak. | |
MARK | Mark stack | SP←PC+2xNN,P ←R5,R5←(SP)+NN | 0064NN | MARK n | Cette instruction permet de marquer l'emplacement dans la pile. |
MED | Maintenance, Exam, and Dep | 076600 | MED | Cette instruction est utilisé pour des fonctions de maintenance. | |
MFPD | Move From Previous Data | tmp←(src),-(SP)←tmp | 1065SS | MFPD s | Cette instruction permet de recopier les données précédentes. |
MFPI | Move From Previous Instr | 0065SS | MFPI s | Cette instruction permet de recopier les instructions précédentes. | |
MFPS | Move From Processor Status | d ← PS<7:0> | 1067DD | MFPS d | Cette instruction permet de copier l'état du processeur. |
MFPT | Move From Processor | d ← PS<7:0> | 000007 | MFPT | Cette instruction permet de retourner l'octet bas d'un code de processeur R0. |
MNS | Maintenance normalization shift | 170004 | MNS | Cette instruction permet d'arrondir le contenu de FSPAD(0) en position de bit 34 (02) pour un nombre réel de double précision. | |
MOV | Move | d ← s | b1SSDD | MOVb s,d | Cette instruction permet de copier une opérande dans un autre opérande. |
MPP | Maintenance Partial Product | 170005 | MPP | Cette instruction permet d'effectuer un diagnostique pour tester la multiplication réseau (MULNET). | |
MTPD | Move to previous data space | tmp←SP+,(dst)←tmp | 1066DD | MTPD d | Cette instruction permet d'extraire un mot de la pile R6 actuelle déterminée par PS (bits 15, 14) et entrepose ce mot dans une adc,lress dans l'espace précédent déterminé par PS (bits 13, 12). |
MTPI | Move To Previous Instr | 0066DD | MTPI d | Cette instruction permet de copier les instructions précédentes | |
MTPS | Move To Processor Status | PS<7:0> ← s | 1064SS | MTPS s | Cette instruction permet de copier l'état du processeur |
MUL | Multiply | r ← r x s | 070RSS | MUL s,r | Cette instruction permet d'effectuer une multiplication |
NEG | Negate | d ← -d | b054DD | NEGb d | Cette instruction permet d'effectuer une négation |
NOP | No Operation | B054DD | NOP | Cette instruction permet de ne rien faire et de passer à l'instruction suivante | |
RESET | Reset external bus | 000005 | RESET | Cette instruction permet de réinitialiser le Bus externe | |
RETURN | Return from subroutine | (= RTS PC) | 000207 | RETURN | Cette instruction permet de retourner d'un sous-programme |
ROL | Rotate Left | d ← {C,d}<- | b061DD | ROLb d | Cette instruction permet d'effectuer un décalage de bits vers la gauche |
ROR | Rotate Right | d ← ->{C,d} | b060DD | RORb d | Cette instruction permet d'effectuer un décalage de bits vers la droite |
RTI | Return from Interrupt | {PC,PS} ← (SP)+ | 000002 | RTIb d | Cette instruction permet de retourner d'une interruption |
RTS | Return from Subroutine | PC ← r,r ← (SP)+ | 00020R | RTS r | Cette instruction permet de retourner d'un sous-programme avec des paramètres |
RTT | Return from Trace trap | PC←(SP)+,PS←(SP)+ | 000006 | RTT | Cette instruction permet de retourner de l'appel d'un vecteur |
SBC | Subtract Carry | d ← d-C | b056DD | SBCb d | Cette instruction permet d'effectuer une soustraction avec la retenue |
SCC | Set all Condition Codes | {C,N,V,Z} ← 1 | 000277 | SCC | Cette instruction permet de fixer la valeur de tous les drapeaux de conditions à 1. |
SEC | Set Carry | C ← 1 | 000261 | SEC | Cette instruction permet de fixer la valeur du drapeau de retenue à 1. |
SEN | Set Negative | N ← 1 | 000270 | SEN | Cette instruction permet de fixer la valeur du drapeau de négation à 1. |
SEV | Set Overflow | V ← 1 | 000262 | SEV | Cette instruction permet de fixer la valeur du drapeau de débordement à 1. |
SEZ | Set Zero | Z ← 1 | 000264 | SEZ | Cette instruction permet de fixer la valeur du drapeau du zéro à 1. |
SOB | Subtract One and Branch | PC ← PC-2 x NN | 077RNN | SOB NN | Cette instruction permet d'effectuer une soustraction de la position du pointeur d'instruction. |
SPL | Set Priority Level | PS<7:5>=N | 00023N | SPL n | Cette instruction permet de fixer le niveau de priorité. |
SUB | Subtract | d ← d-s | 16SSDD | SUB s,d | Cette instruction permet d'effectuer une soustraction. |
SWAB | Swap Bytes | 0003DD | SWAB d | Cette instruction permet d'effectuer l'échange la valeur de deux octets (le poids fort se ramasse dans le poids faible et le poids faible dans le poids fort). | |
SXT | Sign Extend | d ← 0 ou -1 | 0067DD | SXT d | Cette instruction permet d'effectuer l'extension des signes. |
TRAP | Trap | 1044TT | TRAP t | Cette instruction permet d'appeler un vecteur. | |
TST | Test | b057DD | TSTb d | Cette instruction permet d'effectuer un test. | |
WAIT | Wait for interrupt | 000001 | WAIT | Cette instruction permet d'attendre après une interruption. | |
XFC | Extended Function Code | XFC | Cette instruction permet de fournir des informations d'envoi à l'entreposage de contrôle de l'utilisateur ou à l'entreposage de contrôle étendu. | ||
XOR | Exclusive OR | d ← d x r | 074RDD | XOR r,d | Cette instruction permet d'effectuer une opération de «Ou exclusif binaire». |
Dernière mise à jour : Dimanche, le 22 septembre 2013