Grundlagen Assemblerprogrammierung 1

In der Assemblersprache braucht man vorwiegend das Hexadezimalesystem. Das binäre Zahlensystem braucht man insbesondere bei der Erstellung von Display-Grafiken und Bitmanipulationen. Das dezimale Zahlensystem kommt in der ML in der Regel nicht vor.

Bevor wir uns auf die verschiedenen Gruppen von Befehlen und Adressierungsarten stürzen, müssen noch diverse Begriffe erklärt werden.

Wie in BASIC oder Pascal gibt es in ML auch Variablen, nur werden sie hier Register und Flags genannt. Wir unterscheiden folgende Register:

A, B, C, D, E, H, L sind 8-Bit-Register
IX, IY, BC, DE, HL sind 16-Bit-Register

Mit 8-Bit-Registern kann man grössen von (dez.) 0-255 darstellen. Mit 16-Bit-Registern Grössen von 0-65535 (&0000 - &FFFF).

Die Register BC, DE und HL sind zwar 16BitRegister, setzen sich aber aus den 8BitRegistern B und C, D und E sowie H und L zusammen.

Der Z80-Prozessor stellt die 8-Bit Register doppelt zur Verfügung, d.h. mit einem Befehl kann man die aktuelle Belegung mit einer anderen (im internen RAM des Prozessors) austauschen. Somit hat man quasi das doppelte der Anzahl 8-BitRegister zur Verfügung.

Nun kennt der Z80-Prozessor noch diverse Flags. Flags sind im Prinzip 1-Bit-Register, da sie nur die Zustände 1 und 0 unterscheiden. Diese Flags braucht der Prozessor um z.B. einen Überlauf eines Registers anzuzeigen. Hier alle Flags und ihre Bedeutungen:
 
 
S
Vorzeichenflag (1, wenn negativ)
Z
Nullflag (1, wenn Resultat =0)
AC
Hilfsübertragflag (auch H genannt)
P
Paritätflag (1, wenn Oberlauf auftrat)
N
Subtraktionsflag
CY
Übertrag-Flag (Carryflag, auch C genannt)

weiter->