Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
cpm:arnold_assembler [2025/12/10 08:57] – [Makros] volkerpcpm:arnold_assembler [2026/08/25 10:03] (aktuell) – [ASIDE-Assembler-Makros] volkerp
Zeile 1: Zeile 1:
-====== Arnold-Assembler ======+====== Arnold-Assembler ASL ======
  
-Die meisten meiner Assembler-Programme sind mit dem [[http://john.ccac.rwth-aachen.de:8000/as/|Arnold-Assembler]] übersetzbar. Der Assembler von Alfred Arnold ist ein universeller Makro-Cross-Assembler für eine Vielzahl von Mikroprozessoren und -Controllern. Außerdem ist er komplett kostenlos. +Die meisten meiner Assembler-Programme sind mit dem Arnold-Assembler von http://john.ccac.rwth-aachen.de:8000/as/ übersetzbar. Der Assembler von Alfred Arnold ist ein universeller Makro-Cross-Assembler für eine Vielzahl von Mikroprozessoren und -Controllern. Außerdem ist er komplett kostenlos. 
  
 Allerdings erzeugt der Arnold-Assembler erzeugt nicht direkt Binär-Dateien oder auch Hex-Dateien, sondern *.p-Zwischencode-Dateien. Diese müssen mit einem weiteren Programm p2bin.exe erst zu einer Binär-Datei umgeformt werden.  Allerdings erzeugt der Arnold-Assembler erzeugt nicht direkt Binär-Dateien oder auch Hex-Dateien, sondern *.p-Zwischencode-Dateien. Diese müssen mit einem weiteren Programm p2bin.exe erst zu einer Binär-Datei umgeformt werden. 
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. Nur Zeichenketten müssen in ".." statt Hochkommas geschrieben werden. Einzelne Charakter-Zeichen bleiben in Hochkommas.+Der Assembler ist recht kompatibel zum M80 und anderen Assemblern.  
 + 
 +Zeichenketten müssen bei alten Versionen des Assemblers in ".." statt Hochkommas geschrieben werden. Einzelne Charakter-Zeichen bleiben in Hochkommas.
  
 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  Konvertiert IDAPro-Z80-ASM-Dateien in brauchbares Format für den Arnold-Assembler   * convida.pl  Konvertiert IDAPro-Z80-ASM-Dateien in brauchbares Format für den Arnold-Assembler
 +  * 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  Symboles  mit  einem  Punkt  (.)  anfängt, wird das Symbol+Name  eines  Symbols  mit  einem  Punkt  (.)  anfängt, wird das Symbol
 nicht  mit  diesem  Namen  in  der  Symboltabelle abgelegt. Stattdessen nicht  mit  diesem  Namen  in  der  Symboltabelle abgelegt. Stattdessen
 wird  der  Name  des  zuletzt  definierten Symbols ohne vorangestellten wird  der  Name  des  zuletzt  definierten Symbols ohne vorangestellten
 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,  quasi  die Rolle von 'Bereichsgrenzen' ein mit  einem  Punkt  anfängt,  quasi  die Rolle von 'Bereichsgrenzen' ein
-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  neu verwendet werden. 
-reich  neu verwendet werden. +
  
 ===== Standard-Funktionen ===== ===== Standard-Funktionen =====
Zeile 103: Zeile 105:
 ===== Makros ===== ===== Makros =====
  
-Beim  Aufruf eines Makros werden die beim Aufruf angegebenen Parameter- +Beim  Aufruf eines Makros werden die beim Aufruf angegebenen Parameternamen  überall textuell im Befehlsblock eingesetzt  und der sich so ergebene  Assemblercode wird  normal assembliert. Das funktioniert auch beim Ersetzen des Befehls
-namen  überall textuell im Befehlsblock eingesetzt  und der sich so er- +
-gebene  Assemblercode wird  normal assembliert. Das funktioniert auch beim Ersetzen des Befehls+
  
   LOGOP MACRO LINST   LOGOP MACRO LINST
Zeile 120: Zeile 120:
 Wichtig  ist, daß der  Assembler alle Parameterna- Wichtig  ist, daß der  Assembler alle Parameterna-
 men  im  case-sensitiven  Modus  in  Großbuchstaben umsetzt, in Strings men  im  case-sensitiven  Modus  in  Großbuchstaben umsetzt, in Strings
-aber  nie eine  Umwandlung in  Großbuchstaben erfolgt. Die Makroparame- +aber  nie eine  Umwandlung in  Großbuchstaben erfolgt. Die Makroparameternamen  müssen in  den Stringkonstanten  daher groß  geschrieben werden.
-ternamen  müssen in  den Stringkonstanten  daher groß  geschrieben wer- +
-den.+
  
 Der Unter- Der Unter-
-strich  erlaubt es, einzelne Makroparameternamen zu einem Symbol zusam- +strich  erlaubt es, einzelne Makroparameternamen zu einem Symbol zusammenzuketten, z.B. CALL    part1_part2
-menzuketten, z.B. CALL    part1_part2+
  
 Ein  etwas  verstecktes  (und  mit  Vorsicht zu nutzendes) Feature ist, Ein  etwas  verstecktes  (und  mit  Vorsicht zu nutzendes) Feature ist,
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.
  
 <code> <code>
  • cpm/arnold_assembler.txt
  • Zuletzt geändert: 2026/08/25 10:03
  • von volkerp