[Marke[:]] [Mnemonik [Argument_1[,Argument_2[,...]]]] [;Kommentar]
Mnemonik | Anzahl der Argumente | Typ der Argumente | Beschreibung |
---|---|---|---|
BINCLUDE | 1 | Zeichenkette |
Einbinden einer Binärdatei, Die angegebene Datei wird unverändert an der aktuellen Stelle in den erzeugten Programmcode eingefügt. Der Dateiname kann ohne oder mit Pfad angegeben werden, wobei sowohl ein absoluter als auch ein relativer Pfad erlaubt sind. Die Pfadaangabe muss den Regeln des Betriebssystems entsprechen, auf dem JKCEMU läuft. Unabhängig davon kann aber ein relativer Pfad auch in einer betriebssystemunabhängigen Form (also auch unter Windows) mit einem Slash (/) als Pfadtrennzeichen angegeben werden. |
CPU | 1 | Schlüsselwort U880 oder Z80 |
Angabe des Prozessortyps, Dieser Pseudobefehl ist aus Kompatibilitätsgründen vorhanden und hat keine Wirkung, da der Assembler sowieso nur diesen einen Prozessortyp unterstützt. |
DB DEFB DEFM DFB |
mindestens 1 | Numerische Ausdrücke oder Zeichenketten | Datenbytes erzeugen |
DEFH DFH 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 DFS 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 Nullbytes aufgefüllt. |
DA DEFW DFW 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. |
INCLUDE | 1 | Zeichenkette |
Einbinden einer Quelltextdatei, Die angegebene Datei wird an der aktuellen Stelle in den Quelltext eingefügt und mit assembliert. Bzgl. des Dateinamens gelten die die gleichen Regeln wie beim weiter oben beschriebenen Pseudobefehl BINCLUDE. |
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 Nullbytes aufgefüllt. |
Z80 | 0 |
Angabe des Prozessortyps, Dieser Pseudobefehl ist aus Kompatibilitätsgründen vorhanden und hat keine Wirkung, da der Assembler sowieso nur einen Prozessortyp unterstützt. |
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 |
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, muss mit einer Ziffer (z.B. 0) beginnen! |
Beispiel | Dezimaler Wert |
---|---|
123 | 123 |
101b | 5 |
123q | 83 |
0AFh | 175 |
%AF | 175 |
X'AF' | 175 |
Zugriff auf | Syntax |
---|---|
HIGH(...) | Zugriff auf höherwertiges Byte |
LOW(...) | Zugriff auf niederwertiges Byte |
Operator | Beschreibung |
---|---|
+ |
Vorzeichen Der nachfolgende Wert wird nicht verändert. |
- |
Vorzeichen Der nachfolgende Wert wird mathematisch negiert. |
NOT | Der nachfolgende Wert wird bitweise negiert |
Operator | Beschreibung |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
MOD | Module - Rest der Division |
AND | bitweise UND-Verknüpfung |
OR | bitweise Inklusiv-ODER-Verknüpfung |
XOR | bitweise Exklusiv-ODER-Verknüpfung |
<< SHL |
links schieben Der vor dem Operator stehende Wert wird um soviele Bits nach links geschoben, wie der Wert hinter dem Operator angibt. |
>> SHR |
links schieben Der vor dem Operator stehende Wert wird um soviele Bits nach rechts geschoben, wie der Wert hinter dem Operator angibt. |
< LT |
Vergleich auf kleiner als Ist der erste Wert kleiner als der zweite, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
<= LE |
Vergleich auf kleiner oder gleich Ist der erste Wert kleiner oder gleich dem zweiten, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
> GT |
Vergleich auf größer als Ist der erste Wert größer als der zweite, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
>= GE |
Vergleich auf größer oder gleich Ist der erste Wert größer oder gleich dem zweiten, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
= EQ |
Vergleich auf Gleichheit Ist der erste Wert gleich dem zweiten, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
<> NE |
Vergleich auf Ungleichheit Ist der erste Wert ungleich dem zweiten, ergibt das den Wert -1 (alle Bits gesetzt), anderenfalls 0. |
* / MOD |
+ - |
<< >> SHL SHR |
< <= > >= LT LE GT GE |
= <> EQ NE |
AND |
XOR |
OR |
Anweisungen/Syntax | Beschreibung |
---|---|
IF <numersicher_Ausdruck> IFT <numersicher_Ausdruck> |
Der nachfolgende Quelltext wird assembliert, wenn der Wert des numerischen Ausdrucks ungleich 0 ist. |
IFE <numersicher_Ausdruck> IFF <numersicher_Ausdruck> |
Der nachfolgende Quelltext wird assembliert, wenn der Wert des numerischen Ausdrucks gleich 0 ist. |
IFDEF <Marke> | Der nachfolgende Quelltext wird assembliert, wenn die angegebene Marke existiert. |
IFNDEF <Marke> | Der nachfolgende Quelltext wird assembliert, wenn die angegebene Marke nicht existiert. |
IF1 | Der nachfolgende Quelltext wird im ersten Assembler-Lauf assembliert. |
IF2 | Der nachfolgende Quelltext wird im zweiten Assembler-Lauf assembliert. |
Option | Bedeutung | |
---|---|---|
-h | Hilfe zu den Assembler-Optionen anzeigen | |
-f <Datei> |
weitere Kommandozeile aus Datei lesen
Die Kommandozeile kann recht lang sein, möglicherweise länger als von der Eingabeaufforderung oder dem Betriebssystem unterstützt. Aus diesem Grund kann die Kommandozeile aus einer Datei gelesen werden. Beim Erreichen der Option -f öffnet der Assembler die angegebene Datei und liest daraus die weitere Kommandozeile. Wenn das Ende der Datei erreicht wurde, wird der Rest der ursprünglichen Kommandozeile weiter verarbeitet. Der Assembler tut also so, als ob der Inhalt der Datei anstelle der Option -f in der Kommandozeile stehen würde. In der Datei müssen die einzelnen Kommandozeilenargumente nicht in einer Zeile stehen, sondern können auf mehrere Zeilen aufgeteilt werden. Wenn ein Kommandozeilenargument Leerzeichen enthält, muss dieses in doppelte Hochkommas eingeschlossen werden, damit der Assembler es als ein Argument verarbeitet. | |
-l | Markentabelle ausgeben | |
-o <Ausgabedatei> |
Der erzeugte Programmcode wird in die angegebene Datei geschrieben.
Das Format der Ausgabedatei hängt von der Endung
(*.bin; *.hex; *.kcc; *.kcm; *.tap; *.z80) und von der Angabe
der Option -9 ab.
Fehlt die Option -o, hat die Ausgabedatei mit Ausnahme der Endung den gleichen Namen wie die Quelltextdatei. Die Endung lautet: *.bin | |
-9 | Wurde mit der Option -o eine KCC-, KCM- oder TAP-Datei angegeben, wird diese im Format für einen Z9001, KC85/1 und KC87 erzeugt (Dateityp COM eingetragen und bei TAP-Dateien hat der erste Block die Nummer 0). Fehlt die Option -9, werden KCC-, KCM- und TAP-Dateien im Format für HC900 und KC85/2..5 erzeugt. | |
-C | Groß-/Kleinschreibung bei Marken beachten | |
-D <Marke> | Marke mit dem Wert -1 (alle Bits gesetzt) definieren | |
-D <Marke=Wert> |
Marke mit dem angegebenen Wert definieren Der Wert wird in Form einer Dezimal-, Hexadezimal-, Oktal- oder Binärzahl angegeben (siehe Zahlenliteral). |
|
-U | Undokumentierte Befehle erlauben | |
-R | Nur Robotron-Mnemonik/-Syntax erlauben | |
-Z | Nur Zilog-Mnemonik/-Syntax erlauben |