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 11:03] – [4. Vergleiche, Sprünge, Schleifen] scaef_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 286: Zeile 286:
  
 <box 100%> <box 100%>
-**Aufgabe 9:** Schreibe ein Programm, welches das Maximum zweier Zahlen bestimmt: Der Benutzer soll hintereinander aufgefordert werden, zwei Zahlen einzugeben. Von diesen wird die grössere bestimmt und ausgegeben. +**Aufgabe 9:** Schreibe ein Programm, welches das Maximum zweier Zahlen bestimmt: Der Benutzer soll hintereinander aufgefordert werden, zwei Zahlen einzugeben. Von diesen wird die grössere bestimmt und ausgegeben.\\ \\
 Wenn man dieses Programm z.B. in Python schreibt, implementiert man dazu eine Verzweigung (if-el(se)if). In Assembler wird dies wie eine Schleife (z.B. in letzter Aufgabe) mit Sprüngen implementiert. Wenn man dieses Programm z.B. in Python schreibt, implementiert man dazu eine Verzweigung (if-el(se)if). In Assembler wird dies wie eine Schleife (z.B. in letzter Aufgabe) mit Sprüngen implementiert.
  
Zeile 293: Zeile 292:
 ++++Lösung| ++++Lösung|
 <code> <code>
 +        INP R0,2
 +        INP R1,2
 +        CMP R0,R1
 +        BLE LOWER
 +        OUT R0
 +        BRA DONE
 +LOWER   OUT R1
 +DONE    HLT
 </code> </code>
 ++++ ++++
Zeile 394: 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.1727175802.txt.gz
  • Zuletzt geändert: 2024-09-24 11:03
  • von sca