Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
ef_informatik:assembler [2024-09-24 09:44] – [4. Vergleiche, Sprünge, Schleifen] spsef_informatik:assembler [2026-09-08 11:05] (aktuell) – [2. Arbeitsumgebung] sca
Zeile 17: Zeile 17:
  
 **Beispiele:** **Beispiele:**
-   * Umrechnung Hexadeimalsystem -> Dezimalsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 179$ +   * Umrechnung Hexadezimalsystem -> Dezimalsystem $0xB3 = 11 \cdot 16^1 + 3 \cdot 16^0 = 179$ 
-   * Umrechnung Hexadeimalsystem -> Binärsystem $0xB3 = 11 \cdot 16^1 + \cdot 16^0 = 1011 0011$ +   * Umrechnung Hexadezimalsystem -> Binärsystem $0xB3 = 1011 \cdot 2^4 + 0011 \cdot 2^0 = 1011 \cdot 16^1 + 0011 \cdot 16^0 = 1011\,0011$ 
-   * Umrechnung Binärsystem -> Hexadezimalsystem  $1100 1011 = 1100 \cdot 16^1 + 1011 \cdot 16^0 = (8+4) \cdot 16^1 + (8+2+1) \cdot 16^0 = C \cdot 16^1 + B \cdot 16^0 = 0xCB$+   * Umrechnung Binärsystem -> Hexadezimalsystem  $1100\,1011 = 1100 \cdot 16^1 + 1011 \cdot 16^0 = (8+4) \cdot 16^1 + (8+2+1) \cdot 16^0 = C \cdot 16^1 + B \cdot 16^0 = 0xCB$
  
 <box 100%> <box 100%>
Zeile 25: Zeile 25:
  
 Stelle folgende Zahlen im Binärsystem dar und wandle die ins Dezimalsystem um: Stelle folgende Zahlen im Binärsystem dar und wandle die ins Dezimalsystem um:
-   * 0xFF +   $0xFF$ 
-   * 0x100 +   $0x100$ 
-   * 0x3A+   $0x3A$
  
 Stelle folgende Zahlen im Hexadezimalsystem dar und wandle sie ins Dezimalsystem um: Stelle folgende Zahlen im Hexadezimalsystem dar und wandle sie ins Dezimalsystem um:
-   * 1010 1010 +   $1010\,1010$ 
-   * 0111 1101 +   $0111\,1101$ 
-   * 1111 1110+   $1111\,1110$
 <nodisp 1> <nodisp 1>
 ++++Lösung| ++++Lösung|
-   * 0xFF = 1111 1111 = 255 +   $0xFF = 1111\,1111 = 255$ 
-   * 0x100 = 1 0000 0000 = 256 +   $0x100 = 1\,0000\,0000 = 256$ 
-   * 0x3A = 0011 1010 = 58 +   $0x3A = 0011\,1010 = 58$ 
-   * 1010 1010 = 0xAA = 170 +   $1010\,1010 = 0xAA = 170$ 
-   * 0111 1101 = 0x7D = 125 +   $0111\,1101 = 0x7D = 125$ 
-   * 1111 1110 = 0xFE = 254+   $1111\,1110 = 0xFE = 254$
 ++++ ++++
 </nodisp> </nodisp>
Zeile 76: Zeile 76:
 <box 100%> <box 100%>
 **Aufgabe 2:** **Aufgabe 2:**
-  * Sieh dir das Beispielprogramm //example// an.+  * Sieh dir das Beispielprogramm //example// an. Versuche, jede Zeile Code zu verstehen.
 </box> </box>
  
Zeile 251: Zeile 251:
 **Aufgabe 8:** **Aufgabe 8:**
  
- 1. Schreibe ein Programm, das einen Countdown 10,9,...1,0 ausgibt.+a) Schreibe ein Programm, das einen Countdown 10,9,...1,0 ausgibt.
  
 <nodisp 1> <nodisp 1>
Zeile 267: Zeile 267:
 </nodisp> </nodisp>
  
- 2. Schreibe ein Programm, das Zahlen 1 bis 100 addiert und am Ende die Summe ausgibt.+b) Schreibe ein Programm, das Zahlen 1 bis 100 addiert und am Ende die Summe ausgibt.
  
 <nodisp 1> <nodisp 1>
Zeile 286: Zeile 286:
  
 <box 100%> <box 100%>
-**Aufgabe 9:** +**Aufgabe 9:** Schreibe ein Programm, welches das Maximum zweier Zahlen bestimmt: Der Benutzer soll hintereinander aufgefordert werden, zwei Zahlen einzugebenVon diesen wird die grössere bestimmt und ausgegeben.\\ \\ 
-  * Öffne in //Select// das Beispiel //max//+Wenn man dieses Programm z.Bin Python schreibt, implementiert man dazu eine Verzweigung (if-el(se)if)In Assembler wird dies wie eine Schleife (z.Bin letzter Aufgabemit Sprüngen implementiert
-  * Dem Kommentar kannst du entnehmen, was das Programm macht + 
-  * Probiere es mit drei Zahlenpaaren ausWelche Ausgabe erwartest du? +<nodisp 1> 
-    * Erste Zahl > zweite Zahl +++++Lösung| 
-    * Erste Zahl < zweite Zahl +<code> 
-    * 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 
 +</code> 
 +++++ 
 +</nodisp>
 </box> </box>
  
Zeile 392: 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 R1,#1    //Zähler 
 +        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
-        OUT R2,4 +        PSH R2 
-        HLT+        RET 
  
  
  • ef_informatik/assembler.1727171061.txt.gz
  • Zuletzt geändert: 2024-09-24 09:44
  • von sps