Section courante

A propos

Section administrative du site

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