Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| cpm:arnold_assembler [2025/12/10 08:57] – [Makros] volkerp | cpm:arnold_assembler [2026/08/25 10:03] (aktuell) – [ASIDE-Assembler-Makros] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Arnold-Assembler ====== | + | ====== Arnold-Assembler |
| - | Die meisten meiner Assembler-Programme sind mit dem [[http:// | + | Die meisten meiner Assembler-Programme sind mit dem Arnold-Assembler von http:// |
| Allerdings erzeugt der Arnold-Assembler erzeugt nicht direkt Binär-Dateien oder auch Hex-Dateien, | Allerdings erzeugt der Arnold-Assembler erzeugt nicht direkt Binär-Dateien oder auch Hex-Dateien, | ||
| Zeile 8: | Zeile 8: | ||
| <code dos> | <code dos> | ||
| - | as.exe -cpu Z80 -L file.asm | + | asl.exe -cpu Z80 -L file.asm |
| p2bin.exe -r $-$ file.p | p2bin.exe -r $-$ file.p | ||
| del file.p | del file.p | ||
| Zeile 16: | Zeile 16: | ||
| ===== Hinweise ===== | ===== Hinweise ===== | ||
| - | Der Assembler ist recht kompatibel zum M80 und anderen Assemblern. | + | Der Assembler ist recht kompatibel zum M80 und anderen Assemblern. |
| + | |||
| + | Zeichenketten müssen | ||
| Kleine Perl-Programme erleichtern die Arbeit | Kleine Perl-Programme erleichtern die Arbeit | ||
| Zeile 22: | Zeile 24: | ||
| * convasm.pl konvertiert SYPS K1520 - U880 - Syntax nach Zilog-Syntax | * convasm.pl konvertiert SYPS K1520 - U880 - Syntax nach Zilog-Syntax | ||
| * convida.pl | * convida.pl | ||
| + | * convida_Z8.pl Konvertiert IDAPro-Z8-ASM-Dateien in brauchbares Format für den Arnold-Assembler | ||
| Beim **Z8-Prozessor** muss beachtet werden, dass der Assembler automatisch versucht, die Registernutzung zu optimieren. Um 100% originalen Code zu erreichen, ist es hilfreich, RP auf ein ungenutzte Adresse zu setzen: | Beim **Z8-Prozessor** muss beachtet werden, dass der Assembler automatisch versucht, die Registernutzung zu optimieren. Um 100% originalen Code zu erreichen, ist es hilfreich, RP auf ein ungenutzte Adresse zu setzen: | ||
| Zeile 74: | Zeile 77: | ||
| Wann immer der | Wann immer der | ||
| - | Name eines | + | Name eines |
| nicht mit diesem | nicht mit diesem | ||
| wird der Name des zuletzt | wird der Name des zuletzt | ||
| Punkt davor gehängt. Auf diese Weise nehmen Symbole, deren Name nicht | Punkt davor gehängt. Auf diese Weise nehmen Symbole, deren Name nicht | ||
| mit einem Punkt anfängt, | mit einem Punkt anfängt, | ||
| - | und Symbole, deren Name mit einem Punkt anfängt, können in jedem Be- | + | und Symbole, deren Name mit einem Punkt anfängt, können in jedem Bereich |
| - | reich neu verwendet werden. | + | |
| ===== Standard-Funktionen ===== | ===== Standard-Funktionen ===== | ||
| Zeile 103: | Zeile 105: | ||
| ===== Makros ===== | ===== Makros ===== | ||
| - | Beim Aufruf eines Makros werden die beim Aufruf angegebenen | + | Beim Aufruf eines Makros werden die beim Aufruf angegebenen |
| - | namen | + | |
| - | gebene | + | |
| LOGOP MACRO LINST | LOGOP MACRO LINST | ||
| Zeile 120: | Zeile 120: | ||
| Wichtig | Wichtig | ||
| men im case-sensitiven | men im case-sensitiven | ||
| - | aber nie eine Umwandlung in Großbuchstaben erfolgt. Die Makroparame- | + | aber nie eine Umwandlung in Großbuchstaben erfolgt. Die Makroparameternamen |
| - | ternamen | + | |
| - | den. | + | |
| Der Unter- | Der Unter- | ||
| - | strich | + | strich |
| - | menzuketten, z.B. CALL part1_part2 | + | |
| Ein etwas verstecktes | Ein etwas verstecktes | ||
| Zeile 180: | Zeile 177: | ||
| ==== ASIDE-Assembler-Makros ==== | ==== ASIDE-Assembler-Makros ==== | ||
| + | |||
| + | Hat man einen Quelltext für den ASIDE-Assembler (oder ähnlich), kann man mit diesen Makros die fehlenden Assembler-Befehle nachbilden: einfach den folgende Code vor den ASIDE-Assembler-Text einfügen. | ||
| < | < | ||