Nächste Seite: Verschiedene Prozessoren Aufwärts: Der M2Amiga-Assembler Vorherige Seite: Selbstmodifizierender Code

## Umstellung von INLINE auf ASSEMBLE

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 ,,xxxx`H``` ,,`$xxxx``` wird, aus ,,ooooo`B``` ,,`@ooooo``` und aus ,,bbbbbb`L``` ,,`%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