summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--todo.md6
-rw-r--r--tsea83.md85
2 files changed, 89 insertions, 2 deletions
diff --git a/todo.md b/todo.md
index d4ba77f..bd57eae 100644
--- a/todo.md
+++ b/todo.md
@@ -13,11 +13,15 @@
vilken grupp?
tddd60 läs din del
[[tsea83#Föreläsning 4]]
-[[tsea83#Laboration 1]] uppgift 3
+[[tsea83#Laboration 1]] översätt till hex
+15 genomgång tsea28
+tsrt12 börja kolla på labben. planera
+[[tsea83#Laboration 1]] dubbelkolla uppgift 3
## onsdag
10-12 [[tsrt12#Föreläsning 4]]
13-15 [[tsea83#Föreläsning 4]]
+tddd60 läs din del
17-19 [[tsea83#Laboration 1]] redovisa
## torsdag
diff --git a/tsea83.md b/tsea83.md
index 356ef58..4d737cb 100644
--- a/tsea83.md
+++ b/tsea83.md
@@ -38,6 +38,8 @@
### Uppgift 1
| Instruktion | Betydelse | Adresseringsmoder | Flaggor |
| --------------- | ----------------------------- | ----------------- | ------------------ |
+| uppgift 1 och 2 | | | |
+| --------------- | ----------------------------- | ----------------- | ------------------ |
| LOAD GRx,M,ADR | GRx := PM(A) | 00,01,10,11 | - |
| STORE GRx,M,ADR | PM(A) := GRx | 00,10,11 | - |
| ADD GRx,M,ADR | GRx := GRx+PM(A) | 00,01,10,11 | Z,N,O,C |
@@ -46,8 +48,17 @@
| LSR GRx,M,Y | GRx logic shift right Y steps | - (00) | Z,N, C shifted bit |
| BRA ADR | PC := PC+1+ADR | - (00) | - |
| BNE | PC := PC+1+ADR om Z = 0 | - (00) | - |
-| | PC := PC+1 annars | - (00) | - |
+| | PC+1 annars | | |
| HALT | | - (00) | - |
+| --------------- | ----------------------------- | ----------------- | ------------------ |
+| uppgift 3 | | | |
+| --------------- | ----------------------------- | ----------------- | ------------------ |
+| CMP GRx,M,ADR | Jämför GRx och PM(A) | 00,01,10,11 | Z,N,O,C |
+| | och uppdatera flaggor | | |
+| BGE | PC := PC+1+ADR om N = 0 | - (00) | - |
+| | PC+1 annars | | |
+| BEQ | PC := PC+1+ADR om Z = 1 | - (00) | - |
+| | PC+1 annars | | |
| Instruktion | OP | uAdress |
| ----------- | --- | ------- |
@@ -115,6 +126,78 @@ Maskinkod:
| 12 | 8 | | | | |
### Uppgift 3
+- [x] Implementera CMP
+- [x] Implementera BGE
+- [x] Implementera BEQ
+- [x] Implementera bubblesort
+
+| Adress | Variabel |
+| ------ | -------------- |
+| 0xD0 | lista_sorterad |
+| 0xD1 | addr |
+| 0xD2 | addr2+1 |
+| 0xD3 | tmp |
+| 0xD4 | tmp2 |
+
+Assembly
+| OP | GRx | M | ADR? | OPER? |
+| ---------------------------- | --- | --- | ---- | ------- |
+| label1: | | | | |
+| lista_sorterad = 1 | | | | |
+| LOAD | GR0 | 01 | | 0x0001 |
+| STORE | GR0 | 00 | 0xD0 | |
+| | | | | |
+| addr = $e0 | | | | |
+| LOAD | GR0 | 01 | | 0x00E0 |
+| STORE | GR0 | 00 | 0xD1 | |
+| | | | | |
+| label2: | | | | |
+| tmp = pm(addr) | | | | |
+| LOAD | GR0 | 10 | 0xD1 | |
+| STORE | GR0 | 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 | |
+| | | | | |
+| tmp1 > tmp2? | | | | |
+| LOAD | GR0 | 00 | 0xD3 | |
+| CMP | GR0 | 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 | |
+| | | | | |
+| lista_sorterad = 0 | | | | |
+| LOAD | GR0 | 01 | | 0x0000 |
+| STORE | GR0 | 00 | 0xD0 | |
+| | | | | |
+| no_swap: | | | | |
+| räkna upp addr | | | | |
+| LOAD | GR0 | 00 | 0xD1 | |
+| ADD | GR0 | 01 | | 0x0001 |
+| STORE | GR0 | 00 | 0xD1 | |
+| | | | | |
+| addr = 0xff? | | | | |
+| LOAD | GR0 | 00 | 0xD1 | |
+| CMP | GR0 | 01 | | 0x00FF |
+| BNE | | | | label2 |
+| | | | | |
+| lista_sorterad = 1? | | | | |
+| LOAD | GR0 | 00 | 0xD0 | |
+| CMP | GR0 | 01 | | 0x0001 |
+| BNE | | | | label1 |
+| | | | | |
+| HALT | | | | |
### Tillfälle 1