Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
ef_informatik:assembler [2024-09-10 08:05] – [1. Hexadezimalsystem] sps | ef_informatik:assembler [2024-09-24 14:04] (aktuell) – [6. Funktionen] sps | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== - Hexadezimalsystem ===== | ===== - Hexadezimalsystem ===== | ||
- | Assembler ist eine etwas besser leserliche Form der Maschinensprache (Sprache, die die CPU ' | + | Assembler ist eine etwas besser leserliche Form der Maschinensprache (Sprache, die die CPU ' |
- | * Assembler: | + | |
- | * Maschinensprache: | + | |
Befehle in Maschinensprache werden im Binärsystem ausgedrückt. Selbst für relativ kleine Zahlen resultiert dies daher in ziemlich langen Ausdrücken. Deshalb schreibt man diese oft ins Hexadezimalsystem um, was folgende Vorteile hat: | Befehle in Maschinensprache werden im Binärsystem ausgedrückt. Selbst für relativ kleine Zahlen resultiert dies daher in ziemlich langen Ausdrücken. Deshalb schreibt man diese oft ins Hexadezimalsystem um, was folgende Vorteile hat: | ||
Zeile 11: | Zeile 9: | ||
* einfache Umrechnung Binärsystem <-> Hexadezimalsystem (einfacher als z.B. ins Dezimalsystem) | * einfache Umrechnung Binärsystem <-> Hexadezimalsystem (einfacher als z.B. ins Dezimalsystem) | ||
* Die Umrechnung Dezimalsystem <-> Hexadezimalsystem erfolgt wie die Umrechnung Dezimalsystem -> Binärsystem mit dem [[https:// | * Die Umrechnung Dezimalsystem <-> Hexadezimalsystem erfolgt wie die Umrechnung Dezimalsystem -> Binärsystem mit dem [[https:// | ||
- | * Der Online-Umrechner gibt's wie gewohnt hier: | + | * Der Online-Umrechner gibt's wie gewohnt hier: [[https:// |
Das **Hexadezimalsystem** ist das Zahlensystem mit: | Das **Hexadezimalsystem** ist das Zahlensystem mit: | ||
Zeile 21: | Zeile 19: | ||
* Umrechnung Hexadeimalsystem -> Dezimalsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 179$ | * Umrechnung Hexadeimalsystem -> Dezimalsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 179$ | ||
* Umrechnung Hexadeimalsystem -> Binärsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 1011 0011$ | * Umrechnung Hexadeimalsystem -> Binärsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 1011 0011$ | ||
- | * Umrechnung Binärsystem -> Hexadezimalsystem | + | * Umrechnung Binärsystem -> Hexadezimalsystem |
<box 100%> | <box 100%> | ||
Zeile 252: | Zeile 250: | ||
<box 100%> | <box 100%> | ||
**Aufgabe 8:** | **Aufgabe 8:** | ||
- | | + | |
+ | a) Schreibe ein Programm, das einen Countdown 10,9,...1,0 ausgibt. | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | < | ||
+ | MOV R1,#10 | ||
+ | MOV R2,#1 | ||
+ | LOOP: | ||
+ | SUB R1,R2 | ||
+ | CMP R1,#0 | ||
+ | BGE LOOP | ||
+ | HLT | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | b) Schreibe ein Programm, das Zahlen 1 bis 100 addiert und am Ende die Summe ausgibt. | ||
<nodisp 1> | <nodisp 1> | ||
Zeile 271: | Zeile 286: | ||
<box 100%> | <box 100%> | ||
- | **Aufgabe 9:** | + | **Aufgabe 9:** Schreibe ein Programm, welches |
- | * Öffne in // | + | Wenn man dieses |
- | * Dem Kommentar kannst du entnehmen, was das Programm | + | |
- | * Probiere es mit drei Zahlenpaaren aus. Welche Ausgabe erwartest du? | + | <nodisp 1> |
- | * Erste Zahl > zweite Zahl | + | ++++Lösung| |
- | * Erste Zahl < zweite Zahl | + | < |
- | * Erste Zahl = zweite Zahl | + | INP R0,2 |
- | * Wie wird die Verzweigung (if...else...) implementiert? | + | INP R1,2 |
+ | CMP R0,R1 | ||
+ | BLE LOWER | ||
+ | OUT R0 | ||
+ | BRA DONE | ||
+ | LOWER OUT R1 | ||
+ | DONE HLT | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||
</ | </ | ||
Zeile 377: | Zeile 401: | ||
Iterativ: | Iterativ: | ||
INP R0,2 | INP R0,2 | ||
- | MOV R1,#1 //Zähler | + | PSH R0 |
- | MOV R2,#1 //Produkt | + | JMS FCLT |
+ | POP R0 | ||
+ | OUT R0,4 | ||
+ | HLT | ||
+ | FCLT: POP R0 | ||
+ | | ||
+ | MOV R2,#1 //Produkt | ||
LOOP: MUL R2,R1 | LOOP: MUL R2,R1 | ||
ADD R1,#1 | ADD R1,#1 | ||
CMP R1,R0 | CMP R1,R0 | ||
BLE LOOP | BLE LOOP | ||
- | | + | |
- | | + | |