[Marke[:]] [Mnemonik [Argument_1[,Argument_2[,...]]]] [;Kommentar]
Abschließender Buchstabe | Basis der Zahl | Bemerkung |
---|---|---|
nicht vorhanden | 10 | Dezimalzahl |
B, oder b | 2 | Binärzahl |
O, o, Q oder q | 8 | Oktalzahl |
H oder h | 16 | Hexadezimalzahl |
Beispiel | Dezimaler Wert |
---|---|
123 | 123 |
101b | 5 |
123q | 83 |
0AFh | 175 |
Zugriff auf | Syntax |
---|---|
höherwertiges Byte: |
H(...) HIGH(...) |
niederwertiges Byte: |
L(...) LOW(...) |
Mnemonik | Anzahl der Argumente | Typ der Argumente | Beschreibung |
---|---|---|---|
CPU | 1 | Zeichenkette U880 oder Z80 |
Angabe des Prozessortyps, Dieser Pseudobefehl ist aus Kompatibilitätsgründen vorhanden und hat keine Wirkung, da der Assembler sowieso nur einen Prozessortyp unterstützt. |
DEFB DEFM DB |
mindestens 1 | Numerische Ausdrücke oder Zeichenketten | Datenbytes erzeugen |
DEFH HEX |
mindestens 1 |
Hexadezimalzahlen, Es können Hexadezimalzahlen auch ohne führende Null und ohne abschließendes H angegeben werden. Beispiel: DEFH AB |
Datenbytes erzeugen |
DEFS DS |
mindestens 1 | Numerische Ausdrücke |
Speicherbereich reservieren, Steht der Befehl am Anfang oder am Ende des Quelltextes, wird der Speicherbereich zwar reserviert, d.h. die Adressen mitgezählt, jedoch wird kein Programmcode erzeugt. Steht dagegen der Befehl mitten im Quelltext, wird der Bereich mit Null-Bytes aufgefüllt. |
DEFW DA DW |
mindestens 1 | Numerische Ausdrücke | Datenwörter (jeweils 2 Bytes) erzeugen |
END | 0 |
Ende des Quelltextes, Alle weiteren Quelltextzeilen werden ignoriert. |
|
ENT | 0 |
Eintrittspunkt in das Programms, Die aktuelle Adresse wird als Startadresse verwendet. Fehlt der Befehl im Quelltext, gilt die Anfangsadresse als Startadresse. |
|
EQU | 1 | Numerischer Ausdruck |
Marke definieren, Die Quelltextzeile muss eine Marke enthalten, die mit dem angegebenen Wert definiert wird. |
ORG | 1 | Numerischer Ausdruck |
Programmzähler (Adresse) auf den angegebenen Wert setzen, Steht der Befehl mitten im Quelltext, wird der Bereich zwischen der letzten und der neuen Adresse mit Null-Bytes aufgefüllt. |
Assembler-Befehl | Zilog-Mnemonik | Robotron-Mnemonik |
---|---|---|
bedingte CALL-Befehle |
CALL Z CALL NZ CALL C CALL NC CALL PE CALL PO CALL M CALL P |
CAZ CANZ CAC CANC CAPE CAPO CAM CAP |
Vergleichsbefehle | CP | CMP |
Austauschbefehl mit AF | EX AF,AF' | EXAF |
Eingabebefehl: Nur Flag-Register | von Zilog nicht dokumentiert | INF |
unbedingter absoluter Sprung | JP | JMP |
bedingte absolute Sprünge |
JP Z JP NZ JP C JP NC JP PE JP PO JP M JP P |
JPZ JPNZ JPC JPNC JPPE JPPO JPM JPP |
bedingte relative Sprünge |
JR Z JR NZ JR C JR NC |
JRZ JRNZ JRC JRNC |
bedingte Rückkehrbefehle |
RET Z RET NZ RET C RET NC RET PE RET PO RET M RET P |
RZ RNZ RC RNC RPE RPO RM RP |
Assembler-Befehl | Zilog-Syntax | Robotron-Syntax | Erläuterung |
---|---|---|---|
Eingabebefehle | IN r,(C) | IN r | r: Register A, B, C, D, E, H oder L |
Ausgabebefehle |
OUT (C),r OUT (n),A |
OUT r OUT n |
r: Register A, B, C, D, E, H oder L n: numerischer Ausdruck |
8-Bit-Befehle:
|
ADD A,x ADC A,x SBC A,x |
ADD x ADC x SBC x |
x: entweder:
|
Teilregister | Name |
---|---|
Niederwertiges Byte von IX: | IXL oder LX |
Höherwertiges Byte von IX: | IXH oder HX |
Niederwertiges Byte von IY: | IYL oder LY |
Höherwertiges Byte von IY: | IYH oder HY |
Mnemonik und Syntax mit IXH | Erläuterung |
---|---|
LD IXH,n LD IXH,r LD IXH,IXH LD IXH,IXL |
n: numerischer Ausdruck r: Register A, B, C, D oder E |
LD r,IXH | r: Register A, B, C, D oder E |
ADD A,IXH ADC A,IXH SUB IXH SBC A,IXH AND IXH XOR IXH OR IXH CP IXH |
|
INC IXH DEC IXH |
Mnemonik und Syntax |
---|
IN F,(C) IN (C) |
Mnemonik und Syntax | Erläuterung |
---|---|
SLL r SLL (HL) SLL (IX+d) SLL (IY+d) |
r: Register A, B, C, D, E, H oder L |
Mnemonik und Syntax | Erläuterung |
---|---|
RLC (IX+d),r RRC (IX+d),r RL (IX+d),r RR (IX+d),r SLA (IX+d),r SRA (IX+d),r SLL (IX+d),r SRL (IX+d),r RES b,(IX+d),r SET b,(IX+d),r |
r: Register A, B, C, D, E, H oder L b: 0 bis 7 |