diff options
Diffstat (limited to 'lab1/lab1ucode.in')
| -rw-r--r-- | lab1/lab1ucode.in | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/lab1/lab1ucode.in b/lab1/lab1ucode.in new file mode 100644 index 0000000..d0a65f9 --- /dev/null +++ b/lab1/lab1ucode.in @@ -0,0 +1,95 @@ +pc->asr +pm->ir, pc++ +k2->upc + +direct: +ir->asr, k1->upc + +immediate: +pc->asr, pc++, k1->upc + +indirect: +ir->asr +pm->asr, k1->upc + +indexed: +ir->ar +; ar+gr3->ar +!1184000 +ar->asr, k1->upc + +load: +pm->grx, 0->upc + +store: +grx->pm, 0->upc + +add: +pm->ar +ar+grx->ar +ar->grx, 0->upc + +sub: +grx->ar +ar-pm->ar +ar->grx, 0->upc + +and: +grx->ar +ar&pm->ar +ar->grx, 0->upc + +lsr: +grx->ar +pm->lc +lsr_loop: +l=1? lsr_exit +lc--, lsr, b lsr_loop +lsr_exit: +ar->grx, 0->upc + +bra: +pc->ar +ar+'ir->ar +ar->pc, 0->upc + +bne: +pc->ar +z=1? bne_done +ar+'ir->ar +bne_done: +ar->pc, 0->upc + +halt: +halt + +cmp: +grx->ar +ar-pm->ar, 0->upc + +bge: +pc->ar +; if 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 + +beq: +pc->ar +z=1? beq_yes +b beq_no +beq_yes: +ar+'ir->ar +beq_no: +ar->pc, 0->upc + +end: +b end |
