summaryrefslogtreecommitdiffstats
path: root/tsea83.md
diff options
context:
space:
mode:
Diffstat (limited to 'tsea83.md')
-rw-r--r--tsea83.md108
1 files changed, 81 insertions, 27 deletions
diff --git a/tsea83.md b/tsea83.md
index 6908b32..59a04b1 100644
--- a/tsea83.md
+++ b/tsea83.md
@@ -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