summaryrefslogtreecommitdiff
path: root/lib/instructions.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/instructions.txt')
-rw-r--r--lib/instructions.txt16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/instructions.txt b/lib/instructions.txt
index 6522ffe..494ca47 100644
--- a/lib/instructions.txt
+++ b/lib/instructions.txt
@@ -1,6 +1,15 @@
+# Champ d'instructions général
FI:c3,6;c2,6;c1,6;e,6;op,8
-Fa:reserved,4;rm,
+
+# Champ d'adressage
+Fa:reserved,4;rm,2
+
+# Pattern des registres
Pr:R0;R1;R2;R3;R4;R5;R6;R7;R8;R9;R10;R11;R12;R13;R14;R15;R16;R17;R18;R19;R20;R21;R22;R23;R24;R25;R26;R27;R28;R29;R30;R31;Rg;Rd;IP;Fl
+
+# Pattern des adressages
+# .O = Adresse absolue (relogée)
+# .o = Adresse relative à l'instruction en cours (ex: Label, Label + 2, __current__ + 4)
Pm:regop=.Pr;.I=.O;[regop=.Pr;.I=.O[regop=.Pr
# bits 3 - 2
@@ -56,9 +65,10 @@ I:SHR c1=.Pr,c2=.Pr,.I=.C;op=0x7;e=0x1
# Transferts
I:MOV c1=.Pr,rm=.Pm;op=8;e=0;c2=.Fa;c3=regop
+I:MOV c1=.Pr,c3=.Pr;op=8;e=0;c2=0
I:MOV c1=.Pr,.I=.C;op=8;e=1
-I:MOV c2=.Pm,rm=.Pr;op=8;e=2;c2=.Fa;c3=regop
-I:MOV c2=.Pm,.I=.C;op=8;e=3;c2=.Fa;c3=regop
+I:MOV c2=.Pm,rm=.Pr;op=8;e=2;c1=.Fa;c3=regop
+I:MOV c2=.Pm,.I=.C;op=8;e=3;c1=.Fa;c3=regop
p:MV=MOV