diff options
Diffstat (limited to 'tsea83.md')
| -rw-r--r-- | tsea83.md | 108 |
1 files changed, 81 insertions, 27 deletions
@@ -69,8 +69,11 @@ | AND | 4 | 12 | | LSR | 5 | 15 | | BRA | 6 | 18 | -| BRN | 7 | 1C | +| BNE | 7 | 1C | | HALT | 8 | 21 | +| CMP | 9 | 22 | +| BGE | A | 24 | +| BEQ | B | 29 | ### Uppgift 2 Assembly @@ -144,64 +147,115 @@ Assembly | ---------------------------- | --- | --- | ---- | ------- | | label1: | | | | | | lista_sorterad = 1 | | | | | -| LOAD | GR0 | 01 | | 0x0001 | -| STORE | GR0 | 00 | 0xD0 | | +| LOAD | 00 | 01 | | 0x0001 | +| STORE | 00 | 00 | 0xD0 | | | | | | | | | addr = $e0 | | | | | -| LOAD | GR0 | 01 | | 0x00E0 | -| STORE | GR0 | 00 | 0xD1 | | +| LOAD | 00 | 01 | | 0x00E0 | +| STORE | 00 | 00 | 0xD1 | | | | | | | | | label2: | | | | | | tmp = pm(addr) | | | | | -| LOAD | GR0 | 10 | 0xD1 | | -| STORE | GR0 | 00 | 0xD3 | | +| LOAD | 00 | 10 | 0xD1 | | +| STORE | 00 | 00 | 0xD3 | | | | | | | | | tmp2 = pm(addr + 1) | | | | | -| LOAD | GR0 | 10 | 0xD1 | | -| ADD | GR0 | 01 | | 0x0001 | -| STORE | GR0 | 00 | 0xD2 | | -| LOAD | GR0 | 10 | 0xD2 | | -| STORE | GR0 | 00 | 0xD4 | | +| LOAD | 00 | 10 | 0xD1 | | +| ADD | 00 | 01 | | 0x0001 | +| STORE | 00 | 00 | 0xD2 | | +| LOAD | 00 | 10 | 0xD2 | | +| STORE | 00 | 00 | 0xD4 | | | | | | | | | tmp1 > tmp2? | | | | | -| LOAD | GR0 | 00 | 0xD3 | | -| CMP | GR0 | 00 | 0xD4 | | +| LOAD | 00 | 00 | 0xD3 | | +| CMP | 00 | 00 | 0xD4 | | | BEQ | | | | no_swap | | BGE | | | | swap | | BRA | | | | no_swap | | | | | | | | swap: | | | | | | swap pm(addr) and pm(addr+1) | | | | | -| LOAD | GR0 | 10 | 0xD1 | | -| LOAD | GR1 | 10 | 0xD2 | | -| STORE | GR0 | 10 | 0xD2 | | -| STORE | GR1 | 10 | 0xD1 | | +| LOAD | 00 | 10 | 0xD1 | | +| LOAD | 01 | 10 | 0xD2 | | +| STORE | 00 | 10 | 0xD2 | | +| STORE | 01 | 10 | 0xD1 | | | | | | | | | lista_sorterad = 0 | | | | | -| LOAD | GR0 | 01 | | 0x0000 | -| STORE | GR0 | 00 | 0xD0 | | +| LOAD | 00 | 01 | | 0x0000 | +| STORE | 00 | 00 | 0xD0 | | | | | | | | | no_swap: | | | | | | räkna upp addr | | | | | -| LOAD | GR0 | 00 | 0xD1 | | -| ADD | GR0 | 01 | | 0x0001 | -| STORE | GR0 | 00 | 0xD1 | | +| LOAD | 00 | 00 | 0xD1 | | +| ADD | 00 | 01 | | 0x0001 | +| STORE | 00 | 00 | 0xD1 | | | | | | | | | addr = 0xff? | | | | | -| LOAD | GR0 | 00 | 0xD1 | | -| CMP | GR0 | 01 | | 0x00FF | +| LOAD | 00 | 00 | 0xD1 | | +| CMP | 00 | 01 | | 0x00FF | | BNE | | | | label2 | | | | | | | | lista_sorterad = 1? | | | | | -| LOAD | GR0 | 00 | 0xD0 | | -| CMP | GR0 | 01 | | 0x0001 | +| LOAD | 00 | 00 | 0xD0 | | +| CMP | 00 | 01 | | 0x0001 | | BNE | | | | label1 | | | | | | | | HALT | | | | | +Maskinkod +| ADR | OP (4) | GRx, M (4) | ADR? (8) | OPER? (16) | +| --- | --------- | ---------- | -------- | ------------ | +| | label1: | | | | +| 00 | 0 | 1 | | 0001 | +| 01 | 1 | 0 | D0 | | +| | | | | | +| 02 | 0 | 1 | | 00E0 | +| 03 | 1 | 0 | D1 | | +| | | | | | +| | label2: | | | | +| 04 | 0 | 2 | D1 | | +| 05 | 1 | 0 | D3 | | +| | | | | | +| 06 | 0 | 2 | D1 | | +| 07 | 1 | 1 | | 0001 | +| 08 | 1 | 0 | D2 | | +| 09 | 0 | 2 | D2 | | +| 0A | 1 | 0 | D4 | | +| | | | | | +| 0B | 0 | 0 | D3 | | +| 0C | 9 | 0 | D4 | | +| 0D | B | | | 0016 | +| 0E | A | | | 0010 | +| 0F | 6 | | | 0016 | +| | | | | | +| | swap: | | | | +| 10 | 0 | 2 | D1 | | +| 11 | 0 | 6 | D2 | | +| 12 | 1 | 2 | D2 | | +| 13 | 1 | 6 | D1 | | +| | | | | | +| 14 | 0 | 1 | | 0000 | +| 15 | 1 | 0 | D0 | | +| | | | | | +| | no_swap: | | | | +| 16 | 0 | 0 | D1 | | +| 17 | 1 | 1 | | 0001 | +| 18 | 1 | 0 | D1 | | +| | | | | | +| 19 | 0 | 0 | D1 | | +| 20 | 9 | 1 | | 00FF | +| 21 | 7 | | | 0004 | +| | | | | | +| 22 | 0 | 0 | D0 | | +| 23 | 9 | 1 | | 0001 | +| 24 | 7 | | | 0000 | +| | | | | | +| 25 | 8 | | | | + ### Tillfälle 1 ### Tillfälle 2 + ## Laboration 2 - [ ] Skriv ut - [ ] Läs PM |
