summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lab1-test.mia30
-rw-r--r--lab1-upg2.mia30
-rw-r--r--lab1-upg3.mia30
-rw-r--r--lab1ucode.in12
-rw-r--r--lab1ucode.py2
5 files changed, 55 insertions, 49 deletions
diff --git a/lab1-test.mia b/lab1-test.mia
index 5eab6ce..987e4c4 100644
--- a/lab1-test.mia
+++ b/lab1-test.mia
@@ -312,20 +312,20 @@ MyM:
34: 0000180
35: 02c0000
36: 00004b9
-37: 0000439
-38: 1040000
-39: 0118000
-3a: 0000180
-3b: 02c0000
-3c: 000043e
-3d: 000033f
-3e: 1040000
-3f: 0118000
-40: 0000180
-41: 0000341
-42: 0000000
-43: 0000000
-44: 0000000
+37: 00005bc
+38: 000033b
+39: 00005bb
+3a: 000033c
+3b: 1040000
+3c: 0118000
+3d: 0000180
+3e: 02c0000
+3f: 0000441
+40: 0000342
+41: 1040000
+42: 0118000
+43: 0000180
+44: 0000344
45: 0000000
46: 0000000
47: 0000000
@@ -398,7 +398,7 @@ K1:
08: 31
09: 32
0a: 35
-0b: 3b
+0b: 3e
0c: 00
0d: 00
0e: 00
diff --git a/lab1-upg2.mia b/lab1-upg2.mia
index 8aadde2..8f2b0cb 100644
--- a/lab1-upg2.mia
+++ b/lab1-upg2.mia
@@ -312,20 +312,20 @@ MyM:
34: 0000180
35: 02c0000
36: 00004b9
-37: 0000439
-38: 1040000
-39: 0118000
-3a: 0000180
-3b: 02c0000
-3c: 000043e
-3d: 000033f
-3e: 1040000
-3f: 0118000
-40: 0000180
-41: 0000341
-42: 0000000
-43: 0000000
-44: 0000000
+37: 00005bc
+38: 000033b
+39: 00005bb
+3a: 000033c
+3b: 1040000
+3c: 0118000
+3d: 0000180
+3e: 02c0000
+3f: 0000441
+40: 0000342
+41: 1040000
+42: 0118000
+43: 0000180
+44: 0000344
45: 0000000
46: 0000000
47: 0000000
@@ -398,7 +398,7 @@ K1:
08: 31
09: 32
0a: 35
-0b: 3b
+0b: 3e
0c: 00
0d: 00
0e: 00
diff --git a/lab1-upg3.mia b/lab1-upg3.mia
index c47923a..e095eca 100644
--- a/lab1-upg3.mia
+++ b/lab1-upg3.mia
@@ -312,20 +312,20 @@ MyM:
34: 0000180
35: 02c0000
36: 00004b9
-37: 0000439
-38: 1040000
-39: 0118000
-3a: 0000180
-3b: 02c0000
-3c: 000043e
-3d: 000033f
-3e: 1040000
-3f: 0118000
-40: 0000180
-41: 0000341
-42: 0000000
-43: 0000000
-44: 0000000
+37: 00005bc
+38: 000033b
+39: 00005bb
+3a: 000033c
+3b: 1040000
+3c: 0118000
+3d: 0000180
+3e: 02c0000
+3f: 0000441
+40: 0000342
+41: 1040000
+42: 0118000
+43: 0000180
+44: 0000344
45: 0000000
46: 0000000
47: 0000000
@@ -398,7 +398,7 @@ K1:
08: 31
09: 32
0a: 35
-0b: 3b
+0b: 3e
0c: 00
0d: 00
0e: 00
diff --git a/lab1ucode.in b/lab1ucode.in
index 2e012df..d0a65f9 100644
--- a/lab1ucode.in
+++ b/lab1ucode.in
@@ -70,10 +70,14 @@ ar-pm->ar, 0->upc
bge:
pc->ar
; if grx < pm
-n=1? bge_done
-; if grx == pm
-z=1? bge_done
-; here, !(grx <= pm) <=> grx > pm
+n=1? checko1
+o=1? bge_done
+; N, N -> yes
+b bge_jump
+checko1:
+o=1? bge_jump
+b bge_done
+bge_jump:
ar+'ir->ar
bge_done:
ar->pc, 0->upc
diff --git a/lab1ucode.py b/lab1ucode.py
index 19d59c2..af410c9 100644
--- a/lab1ucode.py
+++ b/lab1ucode.py
@@ -120,6 +120,8 @@ def compile(lines):
seq = "1000"
elif cond == "n=1":
seq = "1001"
+ elif cond == "o=1":
+ seq = "1011"
else:
assert False
myadr = f"<{to}>"