TURBO Pascal 3.0 Projekte
Inline-Generator für TURBO PASCAL 3.0
Bekanntlich lassen sich Assemblerroutinen bequem in TURBO Pascal 3.0 mit der
Inline-Anweisung in ein Programm einbinden. Bei manchen Compilern kann man
die Anweisungen direkt in Assemblerschreibweise (Mnemonics) eingeben, bei
TURBO werden aber "Hieroglyphen", nämlich Hex-Code, benötigt.
Bedenkt man, daß in Assemblern wie z.B. RMAC auch externe Referenzen
vorkommen können, dann bieten sich zwei Möglichkeiten zur Erstellung von
Inline-Dateien an:
- Es wird ein Listing erzeugt und aus diesem dann der Hex-Code extrahiert,
externe Referenzen werden entsprechend eingesetzt. Der Nachteil dieses
Verfahrens ist, daß man eng an das Format der List-Datei gebunden ist, denn
dieses Format unterscheidet sich von Assembler zu Assembler beträchtlich.
Dies veranschaulicht folgender Ausschnitt sehr gut:
M80: 0000' 21 0001 ld hl,1 Also: <code><hi><lo>
RMAC: 0000 210100 lxi h,1 Also: <code><lo><hi>
Die c't hat dazu im Heft 2 von 1986 für den Microsoft-Assembler M80 ein
Programm veröffentlicht.
- Es wird eine Objekt-Datei erzeugt in einem verbreitetem Format, dem REL-80
Format. Dieses war eingeführt worden vom Microsoft Assembler M80 und u.a.
verwendet vom RMAC. Hierdurch werden mehrere Assembler abgedeckt, so daß man
seinen "Lieblingsassembler" wählen kann. Ein Programm zur Erzeugung des
Inline-Codes aus dem REL-80 Format wurde vorgestellt in der mc im Heft 6 von
1986.
Ich habe dieses Programm abgetipselt und ein wenig optisch aufgewertet. Für
mich war das eine gute Gelegenheit, ein wenig mit TURBO Pascal am JOYCE zu
spielen. Genauere Informationen sind dem Programm zu entnehmen, wenn man sich
für die Ausgabe der Hilfe entscheidet.
Die Funktion "GetBits" aus dem Modul MKINL3.INC bietet sich zu einem Test an.
Die Routine liegt als Assemblerdatei vor, einmal als GETBITS.ASM für den RMAC
und als GETBITS.MAC für den M80.
Abgedruckt in Klubzeitung Nr. 57
Autor: Werner Cirsovius
|