![]() |
Re: Assembler Files einbinden
Zitat:
Mein Problem ist, dass er mein object-file anmeckert, weil es angeblich 16 Bit Segmente enthält. |
Re: Assembler Files einbinden
Das ist dann aber hauptsächlich ein NASM-Problem; vielleicht gibt's da ja ein Forum, wo Du nachfragen kannst.
|
Re: Assembler Files einbinden
Du solltest auch darauf achten, daß es durchaus unterschiedliche Object Dateiformate gibt. Die zwei gängigsten Formate sind OMF und COFF. Delphi versteht dabei nur OMF. Die meisten anderen Entwicklungstools wie z.B. Visual Studio benutzen das COFF Format. Da die von NASM erzeugten Objektdateien in Visual Studio nutzbar sind, würde ich vermuten, daß es COFF Dateien erzeugt. Ob NASM evtl. auch OMF Dateien erzeugen kann, kann ich nicht sagen (aber ein Blick in die Hilfe sollte helfen). Ansonsten solltest Du einen Assembler verwenden, der OMF Dateien erstellen kann, wie z.B. der bereits genannte TASM32.
|
Re: Assembler Files einbinden
Okay, mit MASM kompiliert und schon geht's. Irgendwie kann NASM(W) keine 32-Bit OMF-OBJ Dateien erzeugen ... okay, dann danke an alle.
|
Re: Assembler Files einbinden
Zitat:
|
Re: Assembler Files einbinden
Ich kenn NASM nicht. Benutze persönlich MASM oder TASM32. War nur eine Vermutung meinerseits.
|
Re: Assembler Files einbinden
Da Du bei nasm/obj eine "16-Bit Segment"-Fehlermeldung erhälst, fehlt vielleicht eine 32-Bit directive, zB etwas wie section .text use32 (aus einem alten aes.asm, habe keine Ahnung von nasm).
Gruß Gammatester |
Re: Assembler Files einbinden
versuche mal bei NASM
Delphi-Quellcode:
[BITS 32]
; Code... |
Re: Assembler Files einbinden
Zitat:
Dummerweiße zwingt mich dass jetzt dazu MASM zu benutzen und ich stoße dabei auf einige Probleme. Ich habe folgenden Code:
Code:
TITLE SimpleTest.asm
.686P .XMM .MODEL FLAT PUBLIC Proc1 PUBLIC Proc2 .CODE Proc1 PROC ; ; Proc1 ENDP Proc2 PROC ; ; Proc2 ENDP END In Delphi sind Proc1 und Proc2 mt 'external' deklariert und linken das entsprechende Obj-File. So lange ich nur Proc1 (oder Proc2) kompiliere und in Delphi einbinde, habe ich keine Probleme. Wenn ich aber zwei Routinen (also Proc1 und Proc2) kompiliere und dann entsprechend in Delphi deklariere, bekomme ich die Fehlermeldungen:
Code:
Falsche globale Symboldefinition in [...] (Objfile)
Ungenügende external Deklaration Proc1 Was genau hat sich dadurch geändert, dass ich noch eine zweite Funktion in meinem Code habe? Also MASM wirft da keine Fehler, aber Delphi mag es nicht mehr. Kompiliert habe ich es mit /omf. |
Re: Assembler Files einbinden
Dazu sollte man noch sagen, dass der selbige Code (mit angepasster Parameterabfrage) sich ohne Probleme in C (VC 9) verwenden lässt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz