Nächste Seite: Verschiedene Prozessoren
Aufwärts: Der M2Amiga-Assembler
Vorherige Seite: Selbstmodifizierender Code
In der vorgängigen Version von existierte
die Anweisung INLINE, mit der explizit Maschinensprache
in den Code eingefügt werden konnte. Diese Anweisung ist
nun nicht mehr vorhanden. Programme, welche diese Anweisung
verwenden, müssen gemäss den folgenden Richtlinien geändert
werden.
Um alte INLINE-Daten auf ASSEMBLE umzustellen hat man nur folgendes
zu tun:
- ersetze ,,INLINE`` durch ,,ASSEMBLE``; dies
muss auch in der IMPORT-Anweisung geschehen!
- setze zu Beginn ein ,,DC.W``
- füge vor der abschliessenden Klammer ein ,,END`` ein
- stelle konstante Zahlen so um, dass aus ,,xxxxH``
,,$xxxx`` wird, aus ,,oooooB``
,,@ooooo`` und aus ,,bbbbbbL``
,,%bbbbbb``.
Natürlich hat man nun ganz neue Möglichkeiten, wie aus dem vorigen
Abschnitt ersichtlich. Diese sollte man auch nutzen.
Alten INLINE-Code nach ASSEMBLE umzustellen erfordert
dagegen weit mehr.
Man darf keinesfalls einfach das gleiche wie bei den Daten
tun, da
- wahrscheinlich nicht an die Register-Rettung
gedacht wurde,
- alle Sprünge dem Compiler bekannt sein müssen,
- viele Objekte nun ganz anders adressiert werden und
- die Laufzeitumgebung (Stackframe) anders ist!
Man muss vielmehr den ursprünglichen Assembler-Quelltext
in den Text einfügen und entsprechend anpassen.
Falls diese Anweisungen mit Hilfe des Moduls Assembler
erstellt wurden, fällt die Umstellung leichter. Wegen
den obigen Einschränkungen ist dieses Modul in dieser
Version nicht mehr enthalten; der eingebaute Assembler macht es
auch unnötig.
Nächste Seite: Verschiedene Prozessoren
Aufwärts: Der M2Amiga-Assembler
Vorherige Seite: Selbstmodifizierender Code
Claudio Nieder
2000-11-12