Voici un tableau de référence des différents
instructions du microprocesseur PDP-11:
| 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». |