AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler Files einbinden

Ein Thema von FrEEzE2046 · begonnen am 9. Dez 2009 · letzter Beitrag vom 11. Jan 2010
Antwort Antwort
Seite 2 von 4     12 34      
FrEEzE2046

Registriert seit: 25. Aug 2009
27 Beiträge
 
#11

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 14:53
Zitat von gammatester:
Ansonsten Aufrufkonventionen beachten/anpassen: stdcall, pascal, cdecl Stichwort Calling conventions in Onlinehilfe.
Die Aufrufkonventionen kenne ich. Müsste bei mir natürlich register sein, ist es aber sowieso by default.
Mein Problem ist, dass er mein object-file anmeckert, weil es angeblich 16 Bit Segmente enthält.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#12

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:04
Das ist dann aber hauptsächlich ein NASM-Problem; vielleicht gibt's da ja ein Forum, wo Du nachfragen kannst.
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:13
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.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
FrEEzE2046

Registriert seit: 25. Aug 2009
27 Beiträge
 
#14

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:14
Okay, mit MASM kompiliert und schon geht's. Irgendwie kann NASM(W) keine 32-Bit OMF-OBJ Dateien erzeugen ... okay, dann danke an alle.
  Mit Zitat antworten Zitat
FrEEzE2046

Registriert seit: 25. Aug 2009
27 Beiträge
 
#15

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:16
Zitat von Fridolin Walther:
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.
NASM kann COFF Objektdateien erzeugen, ja. Aber mit dem Compiler-Parameter obj erzeugt man OMF. Ganz sicher, steht auch so in der Command-Line-Hilfe (-hf).
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#16

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:17
Ich kenn NASM nicht. Benutze persönlich MASM oder TASM32. War nur eine Vermutung meinerseits.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#17

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:35
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
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#18

Re: Assembler Files einbinden

  Alt 9. Dez 2009, 15:49
versuche mal bei NASM

Delphi-Quellcode:
[BITS 32]
; Code...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
FrEEzE2046

Registriert seit: 25. Aug 2009
27 Beiträge
 
#19

Re: Assembler Files einbinden

  Alt 14. Dez 2009, 13:11
Zitat von Neutral General:
versuche mal bei NASM
Delphi-Quellcode:
[BITS 32]
; Code...
Danke für deine Hilfe, aber das war natürlich das erste was ich gemacht hatte. Ich kann leider nicht sagen wo ran es liegt.

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.
  Mit Zitat antworten Zitat
FrEEzE2046

Registriert seit: 25. Aug 2009
27 Beiträge
 
#20

Re: Assembler Files einbinden

  Alt 14. Dez 2009, 14:55
Dazu sollte man noch sagen, dass der selbige Code (mit angepasster Parameterabfrage) sich ohne Probleme in C (VC 9) verwenden lässt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz