Assembler: Frage zu verschiebbaren Programmen
von mp-one » So 23. Nov 2008, 12:23Hallo Assembler-Kenner,
ich habe mit dem ATMAS II ein paar kleinere Assembler-Routinen (Invertieren einer Zeile, ATASC-to-Int, etc.) erstellt, die ich per X=USR(...) von BASIC aus aufrufe. Da ich möglichst von absoluten Adressen (Page 6) unabhängig sein will, habe ich nur relative Sprünge verwendet, also z.B. BCC und BEQ statt JSR und JMP. Dazu habe ich noch ein BASIC-Tool geschrieben, welches die Objektprogramme in einen String wandelt. Das klappt bisher sehr gut.
Meine Frage wäre nun, welche weiteren Tipps und Kniffe es gibt, um Programme adressunabhängig zu halten. Zum Beispiel bei einer Wertetabelle, die ich im ATMAS mit DFB b1,b2,..,bn definiere und dann indiziert einzelne Werte von dort abrufen möchte. Gibt es da Möglichkeiten oder geht das nur mit absoluten Adressen?
Gruß,
Michael
ich habe mit dem ATMAS II ein paar kleinere Assembler-Routinen (Invertieren einer Zeile, ATASC-to-Int, etc.) erstellt, die ich per X=USR(...) von BASIC aus aufrufe. Da ich möglichst von absoluten Adressen (Page 6) unabhängig sein will, habe ich nur relative Sprünge verwendet, also z.B. BCC und BEQ statt JSR und JMP. Dazu habe ich noch ein BASIC-Tool geschrieben, welches die Objektprogramme in einen String wandelt. Das klappt bisher sehr gut.
Meine Frage wäre nun, welche weiteren Tipps und Kniffe es gibt, um Programme adressunabhängig zu halten. Zum Beispiel bei einer Wertetabelle, die ich im ATMAS mit DFB b1,b2,..,bn definiere und dann indiziert einzelne Werte von dort abrufen möchte. Gibt es da Möglichkeiten oder geht das nur mit absoluten Adressen?
Gruß,
Michael