From 2c21d9d4723f29acdb16d963a934707cf7574de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Thu, 27 Jan 2022 00:21:02 +0100 Subject: lab1-3 --- lab1-3.mia | 454 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lab1ucode.in | 22 ++- lab1ucode.out | 48 +++---- lab1ucode.py | 4 + 4 files changed, 500 insertions(+), 28 deletions(-) create mode 100644 lab1-3.mia diff --git a/lab1-3.mia b/lab1-3.mia new file mode 100644 index 0000000..b6b0161 --- /dev/null +++ b/lab1-3.mia @@ -0,0 +1,454 @@ +PM: +00: 0100 +01: 0001 +02: 10d0 +03: 0100 +04: 00e0 +05: 10d1 +06: 02d1 +07: 10d3 +08: 00d1 +09: 2100 +0a: 0001 +0b: 10d2 +0c: 02d2 +0d: 10d4 +0e: 00d3 +0f: 90d4 +10: b009 +11: a001 +12: 6007 +13: 02d1 +14: 06d2 +15: 12d2 +16: 16d1 +17: 0100 +18: 0000 +19: 10d0 +1a: 00d1 +1b: 2100 +1c: 0001 +1d: 10d1 +1e: 00d1 +1f: 9100 +20: 00ff +21: 70e4 +22: 00d0 +23: 9100 +24: 0001 +25: 70da +26: 8000 +27: 0000 +28: 0000 +29: 0000 +2a: 0000 +2b: 0000 +2c: 0000 +2d: 0000 +2e: 0000 +2f: 0000 +30: 0000 +31: 0000 +32: 0000 +33: 0000 +34: 0000 +35: 0000 +36: 0000 +37: 0000 +38: 0000 +39: 0000 +3a: 0000 +3b: 0000 +3c: 0000 +3d: 0000 +3e: 0000 +3f: 0000 +40: 0000 +41: 0000 +42: 0000 +43: 0000 +44: 0000 +45: 0000 +46: 0000 +47: 0000 +48: 0000 +49: 0000 +4a: 0000 +4b: 0000 +4c: 0000 +4d: 0000 +4e: 0000 +4f: 0000 +50: 0000 +51: 0000 +52: 0000 +53: 0000 +54: 0000 +55: 0000 +56: 0000 +57: 0000 +58: 0000 +59: 0000 +5a: 0000 +5b: 0000 +5c: 0000 +5d: 0000 +5e: 0000 +5f: 0000 +60: 0000 +61: 0000 +62: 0000 +63: 0000 +64: 0000 +65: 0000 +66: 0000 +67: 0000 +68: 0000 +69: 0000 +6a: 0000 +6b: 0000 +6c: 0000 +6d: 0000 +6e: 0000 +6f: 0000 +70: 0000 +71: 0000 +72: 0000 +73: 0000 +74: 0000 +75: 0000 +76: 0000 +77: 0000 +78: 0000 +79: 0000 +7a: 0000 +7b: 0000 +7c: 0000 +7d: 0000 +7e: 0000 +7f: 0000 +80: 0000 +81: 0000 +82: 0000 +83: 0000 +84: 0000 +85: 0000 +86: 0000 +87: 0000 +88: 0000 +89: 0000 +8a: 0000 +8b: 0000 +8c: 0000 +8d: 0000 +8e: 0000 +8f: 0000 +90: 0000 +91: 0000 +92: 0000 +93: 0000 +94: 0000 +95: 0000 +96: 0000 +97: 0000 +98: 0000 +99: 0000 +9a: 0000 +9b: 0000 +9c: 0000 +9d: 0000 +9e: 0000 +9f: 0000 +a0: 0000 +a1: 0000 +a2: 0000 +a3: 0000 +a4: 0000 +a5: 0000 +a6: 0000 +a7: 0000 +a8: 0000 +a9: 0000 +aa: 0000 +ab: 0000 +ac: 0000 +ad: 0000 +ae: 0000 +af: 0000 +b0: 0000 +b1: 0000 +b2: 0000 +b3: 0000 +b4: 0000 +b5: 0000 +b6: 0000 +b7: 0000 +b8: 0000 +b9: 0000 +ba: 0000 +bb: 0000 +bc: 0000 +bd: 0000 +be: 0000 +bf: 0000 +c0: 0000 +c1: 0000 +c2: 0000 +c3: 0000 +c4: 0000 +c5: 0000 +c6: 0000 +c7: 0000 +c8: 0000 +c9: 0000 +ca: 0000 +cb: 0000 +cc: 0000 +cd: 0000 +ce: 0000 +cf: 0000 +d0: 0000 +d1: 0000 +d2: 0000 +d3: 0000 +d4: 0000 +d5: 0000 +d6: 0000 +d7: 0000 +d8: 0000 +d9: 0000 +da: 0000 +db: 0000 +dc: 0000 +dd: 0000 +de: 0000 +df: 0000 +e0: 0000 +e1: 0000 +e2: 0000 +e3: 0000 +e4: 0000 +e5: 0000 +e6: 0000 +e7: 0000 +e8: 0000 +e9: 0000 +ea: 0000 +eb: 0000 +ec: 0000 +ed: 0000 +ee: 0000 +ef: 0000 +f0: 0000 +f1: 0000 +f2: 0000 +f3: 0000 +f4: 0000 +f5: 0000 +f6: 0000 +f7: 0000 +f8: 0000 +f9: 0000 +fa: 0000 +fb: 0000 +fc: 0000 +fd: 0000 +fe: 0000 +ff: 0000 + +MyM: +00: 00f8000 +01: 0088000 +02: 0002000 +03: 0000100 +04: 0078000 +05: 0000080 +06: 00f8000 +07: 0002000 +08: 0000080 +09: 0078000 +0a: 00b8000 +0b: 0000080 +0c: 0240000 +0d: 1184000 +0e: 0138000 +0f: 0000080 +10: 00b0000 +11: 0000180 +12: 0190000 +13: 0000180 +14: 0280000 +15: 0980000 +16: 0130000 +17: 0000180 +18: 0280000 +19: 0b80000 +1a: 0130000 +1b: 0000180 +1c: 0380000 +1d: 0c80000 +1e: 0130000 +1f: 0000180 +20: 0380000 +21: 0081000 +22: 0000626 +23: 0000800 +24: 1a00000 +25: 0000322 +26: 0130000 +27: 0000180 +28: 02c0000 +29: 1040000 +2a: 0118000 +2b: 0000180 +2c: 02c0000 +2d: 000042f +2e: 1040000 +2f: 0118000 +30: 0000180 +31: 0000780 +32: 0280000 +33: 0b80000 +34: 0000180 +35: 02c0000 +36: 00004b8 +37: 1040000 +38: 0118000 +39: 0000180 +3a: 02c0000 +3b: 000043d +3c: 0000000 +3d: 1040000 +3e: 0118000 +3f: 0000180 +40: 0000340 +41: 0000000 +42: 0000000 +43: 0000000 +44: 0000000 +45: 0000000 +46: 0000000 +47: 0000000 +48: 0000000 +49: 0000000 +4a: 0000000 +4b: 0000000 +4c: 0000000 +4d: 0000000 +4e: 0000000 +4f: 0000000 +50: 0000000 +51: 0000000 +52: 0000000 +53: 0000000 +54: 0000000 +55: 0000000 +56: 0000000 +57: 0000000 +58: 0000000 +59: 0000000 +5a: 0000000 +5b: 0000000 +5c: 0000000 +5d: 0000000 +5e: 0000000 +5f: 0000000 +60: 0000000 +61: 0000000 +62: 0000000 +63: 0000000 +64: 0000000 +65: 0000000 +66: 0000000 +67: 0000000 +68: 0000000 +69: 0000000 +6a: 0000000 +6b: 0000000 +6c: 0000000 +6d: 0000000 +6e: 0000000 +6f: 0000000 +70: 0000000 +71: 0000000 +72: 0000000 +73: 0000000 +74: 0000000 +75: 0000000 +76: 0000000 +77: 0000000 +78: 0000000 +79: 0000000 +7a: 0000000 +7b: 0000000 +7c: 0000000 +7d: 0000000 +7e: 0000000 +7f: 0000000 + +K1: +00: 10 +01: 12 +02: 14 +03: 18 +04: 1c +05: 20 +06: 28 +07: 2c +08: 31 +09: 32 +0a: 35 +0b: 3a + +K2: +00: 04 +01: 06 +02: 09 +03: 0c + +PC: +00 + +ASR: +00 + +AR: +0000 + +HR: +0000 + +GR0: +0000 + +GR1: +0000 + +GR2: +0000 + +GR3: +0000 + +IR: +0000 + +MyPC: +00 + +SMyPC: +00 + +LC: +00 + +O_flag: + +C_flag: + +N_flag: + +Z_flag: + +L_flag: +End_of_dump_file diff --git a/lab1ucode.in b/lab1ucode.in index 99f9aaf..26bcc7b 100644 --- a/lab1ucode.in +++ b/lab1ucode.in @@ -50,11 +50,15 @@ ar->grx, 0->upc bra: pc->ar -ar+ir->ar +ar+'ir->ar ar->pc, 0->upc bne: -0->upc +pc->ar +z=1? bne_done +ar+'ir->ar +bne_done: +ar->pc, 0->upc halt: halt @@ -64,10 +68,20 @@ pm->ar ar-grx->ar, 0->upc bge: -0->upc +pc->ar +n=1? bge_done +ar+'ir->ar +bge_done: +ar->pc, 0->upc beq: -0->upc +pc->ar +z=1? beq_yes +bra beq_no +beq_yes: +ar+'ir->ar +beq_no: +ar->pc, 0->upc end: b end diff --git a/lab1ucode.out b/lab1ucode.out index 857aff0..e28c060 100644 --- a/lab1ucode.out +++ b/lab1ucode.out @@ -40,30 +40,30 @@ MyM: 26: 0130000 27: 0000180 28: 02c0000 -29: 0840000 +29: 1040000 2a: 0118000 2b: 0000180 -2c: 0000180 -2d: 0000780 -2e: 0280000 -2f: 0b80000 +2c: 02c0000 +2d: 000042f +2e: 1040000 +2f: 0118000 30: 0000180 -31: 0000180 -32: 0000180 -33: 0000333 -34: 0000000 -35: 0000000 -36: 0000000 -37: 0000000 -38: 0000000 -39: 0000000 -3a: 0000000 -3b: 0000000 +31: 0000780 +32: 0280000 +33: 0b80000 +34: 0000180 +35: 02c0000 +36: 00004b8 +37: 1040000 +38: 0118000 +39: 0000180 +3a: 02c0000 +3b: 000043d 3c: 0000000 -3d: 0000000 -3e: 0000000 -3f: 0000000 -40: 0000000 +3d: 1040000 +3e: 0118000 +3f: 0000180 +40: 0000340 41: 0000000 42: 0000000 43: 0000000 @@ -137,7 +137,7 @@ K1: 05: 20 06: 28 07: 2c -08: 2d -09: 2e -0a: 31 -0b: 32 +08: 31 +09: 32 +0a: 35 +0b: 3a diff --git a/lab1ucode.py b/lab1ucode.py index 5c4e0b8..814ff4a 100644 --- a/lab1ucode.py +++ b/lab1ucode.py @@ -116,6 +116,10 @@ def compile(lines): cond, to = inst.split("? ") if cond == "l=1": seq = "1100" + elif cond == "z=1": + seq = "1000" + elif cond == "n=1": + seq = "1001" else: assert False myadr = f"<{to}>" -- cgit v1.2.1