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:

  1. 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.
  2. 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