Grundlagen Assemblerprogrammierung 2

Mit den Ladebefehlen belegt man Register oder Speicheradressen mit Werten und Inhalten von anderen Registern.

Beispiele:
 
LD A,&3C Der Wert &3C wird dem A-Register   zugewiesen.
LD A,C Der Inhalt vom C-Register wird in das A-Register kopiert.
LD (xxyy),A Die Adresse xxyy wird mit dem Wert vom A-Register belegt.
LD BC,xxyy Der Wert xxyy wird dem BC Register zugewiesen.
LD BC,(xxyy) Ins BC-Register kommt der Wert: Inhalt von (xxyy) + Inhalt von (xxyy+l) * 256

Die Transportbefehle PUSH und POP dienen zum Ablegen von Registerinhalten auf den Stack. Der Stack ist wie ein Speicher, bei dem man oben auflegen und nur oben wieder wegnehmen kann.

Zur Verdeutlichung ein Beispiel:
 
PUSH AF AF-Register wird auf Stack gelegt.
PUSH BC BC-Register wird auf Stack gelegt.
POP AF erhält oberster Stack-Wert (also alter BC-Wert).
POP BC erhält oberster Stack-Wert (also alter AF-Wert).

Der Stack-Pointer , das SP-Register, zeigt immer auf die Adresse des obersten Elementes des Stapels. Eigentlich müsste der Stapel definiert werden, da aber der PC-1600 ein eigenes ROM besitzt, können wir davon absehen.

PUSH und POP werden also vorallem für das Sichern und Rekonstroieren von Registern benötigt.
 
 

weiter->