Gladir.com - Assembleur PDP-11 - Référence des instructions PDP-11


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*2^s 072RSS ASH s,r

Cette instruction permet d'effectuer un décalage arithmétique de bits.

ASHC Arithmetic Shift Combined r ← r*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*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.

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 v 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.

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.

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 BPL a

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 de fixer la valeur du drapeau du zéro à 0.

COM Complement d ← ~d B051DD COMb d

Cette instruction permet d'effectuer le complément d'une opérande.

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'appeler le vecteur d'émulation.

FDIV Floating Divide   07503R FDIV r

Cette instruction permet d'effectuer d'une division d'un nombre réel.

FMUL Floating Multiply   07502R FMUL r

Cette instruction permet d'effectuer d'une multiplication d'un nombre réel.

FSUB Floating Subtract   07501R FSUB r

Cette instruction permet d'effectuer d'une multiplication 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.

MARK Mark stack RTS aid 0064NN MARK n

Cette instruction permet de marquer l'emplacement dans la pile.

MFPD Move From Previous Data RTS aid 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 preacute;ceacute;dentes.

MFPS Move From Processor Status d ← PS<7:0> 1067DD MFPS d

Cette instruction permet de copier l'état du processeur.

MOV Move d ← s B1SSDD MOVb s,d

Cette instruction permet de copier une opérande dans un autre opérande.

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*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   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 SCC

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*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   B055DD TSTb d

Cette instruction permet d'effectuer un test.

WAIT Wait for interrupt   000001 WAIT

Cette instruction permet d'attendre après une interruption.

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: Samedi, le 25 mars 2006