diff options
Diffstat (limited to 'lab1-upg3.in')
| -rw-r--r-- | lab1-upg3.in | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lab1-upg3.in b/lab1-upg3.in new file mode 100644 index 0000000..f194b3a --- /dev/null +++ b/lab1-upg3.in @@ -0,0 +1,62 @@ +label1: +; lista_sorterad = 1 +load 0 1 +0001 +store 0 0 d0 + +; addr = e0 +load 0 1 +00e0 +store 0 0 d1 + +label2: +; tmp1 = pm(addr) +load 0 2 d1 +store 0 0 d3 + +; tmp2 = pm(addr + 1) +load 0 0 d1 +add 0 1 +0001 +store 0 0 d2 +load 0 2 d2 +store 0 0 d4 + +; tmp1 > tmp2? +load 0 0 d4 +cmp 0 0 d3 +beq no_swap +bge swap +bra no_swap + +swap: +load 0 2 d1 +load 1 2 d2 +store 0 2 d2 +store 1 2 d1 + +; lista_sorterad = 0 +load 0 1 +0000 +store 0 0 d0 + +no_swap: +; räkna upp addr +load 0 0 d1 +add 0 1 +0001 +store 0 0 d1 + +; addr = 0xff? +load 0 0 d1 +cmp 0 1 +00ff +bne label2 + +; lista_sorterad = 1? +load 0 0 d0 +cmp 0 1 +0001 +bne label1 + +halt |
