This is an old revision of the document!
Funktionsweise einer CPU
- Speicher: Array of Bytes, Index wird Adresse genannt. Hier laufen die Adressen von 0-255.
- Register: Eine Art interne Variablen in der CPU. Hier A,B,C,D, Grösse 1 Byte
- Instruction Pointer (IP): Gibt an, wo die nächste auszuführende Instruktion im Speicher liegt. Wird oft auch Programm Counter (PC) genannt.
- Stack Pointer (SP): Zeigt auf den ersten freien Platz auf dem Stapel (wächst rückwärts). Startet bei Adresse 231.
- Flags: Z (Zero, True wenn ein Ergebnis Null ist), C (Carry, True wenn ein Überlauf stattgefunden hat). F ist True, wenn ein Fehler aufgetreten ist (z.B. eine nicht existente Instruktion, Division durch Null oder ähnliches)
- Memory mapped output: Die Bytes 232-255 werden als Buchstaben (entsprechend dem ASCII-Code) in der Ausgabe dargestellt.
- Die Bytes 253-255 werden zusätzlich in der Siebensegmentanzeige dargestellt. Die Segmente sind von oben im Uhrzeigersinn nummeriert (Bits 0 bis 5), mit dem inneren Segment mit Nummer 6.
Ausgabe auf die 7-Segment Anzeige
MOV [253], 119 MOV [254], 124 MOV [255], 57
For-Loop
MOV A, 10 ; loop counter MOV B, 232 ; start output address MOV C, '0' ; start letter loop: MOV [B], C ; Write letter to address pointed at by B INC B ; Increase output position INC C ; Increase letter DEC A ; Decrease loop counter JNZ loop ; last result not zero? Then jump to loop HLT
Subroutine