Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Assemblerprogramm in Delphi 7 einbinden
rpatsch - Do 16.11.06 20:01
Titel: Assemblerprogramm in Delphi 7 einbinden
Hallo alle zusammen,
ich habe ein Problem mit einem Assemblerprogrammaufruf. Folgender Delphicode ist vorhanden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| var Form1: TForm1;
implementation
{$R *.dfm} {$L uppinneu.obj}
procedure TForm1.BitBtn2Click(Sender: TObject); var W_PC, W_KPROM, W_VAR, W_PINCODE, S_ME_FE, W_HAENDLER : String;
begin W_PC := MaskEdit1.Text+MaskEdit2.Text+MaskEdit3.Text; W_KPROM := MaskEdit4.Text; W_VAR := '5'; W_PINCODE := '0000'; S_ME_FE := '0'; W_HAENDLER := '0'; pinneu(var w_pc,w_kprom,w_var,w_pincode,s_me_fe,w_haendler:string); external; edit1.Text := w_pincode; end; |
Nach dem kompilieren wird mir der Fehler 55 Undefinierter Bezeichner:'pinneu' ausgegeben. Im Assemblerfile wird aber mit:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| memory segment public 'code'
assume cs:memory,ds:memory,es:memory,ss:nothing
public pinneu
pinneu proc far ;Beginn der Procedure.
; Hier steht jetzt der Code
memory ends end |
die Procedure pinneu gestartet.
Kann mir jemand bei der Problemlösung helfen?
Viele Grüße aus Unterschleißheim
Rolf
Moderiert von
raziel: Delphi-Tags hinzugefügt
Jakob Schöttl - Do 16.11.06 20:49
Ist bisschen schwer anzusehen. Setze bitte erstmal allen Quellcode in delphi-Tags (
außerdem kannst du auch in delphi assemlbercode schreiben
muss weg
Reinhard Kern - Fr 17.11.06 03:30
Titel: Re: Assemblerprogramm in Delphi 7 einbinden
rpatsch hat folgendes geschrieben: |
Hallo alle zusammen,
ich habe ein Problem mit einem Assemblerprogrammaufruf. Folgender Delphicode ist vorhanden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| var Form1: TForm1;
implementation
{$R *.dfm} {$L uppinneu.obj}
procedure TForm1.BitBtn2Click(Sender: TObject); var W_PC, W_KPROM, W_VAR, W_PINCODE, S_ME_FE, W_HAENDLER : String;
begin W_PC := MaskEdit1.Text+MaskEdit2.Text+MaskEdit3.Text; W_KPROM := MaskEdit4.Text; W_VAR := '5'; W_PINCODE := '0000'; S_ME_FE := '0'; W_HAENDLER := '0'; pinneu(var w_pc,w_kprom,w_var,w_pincode,s_me_fe,w_haendler:string); external; edit1.Text := w_pincode; end; |
Nach dem kompilieren wird mir der Fehler 55 Undefinierter Bezeichner:'pinneu' ausgegeben. Im Assemblerfile wird aber mit:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| memory segment public 'code'
assume cs:memory,ds:memory,es:memory,ss:nothing
public pinneu
pinneu proc far ;Beginn der Procedure.
; Hier steht jetzt der Code
memory ends end |
die Procedure pinneu gestartet.
Kann mir jemand bei der Problemlösung helfen?
Viele Grüße aus Unterschleißheim
Rolf
Moderiert von raziel: Delphi-Tags hinzugefügt |
Hallo,
du musst natürlich pinneu deklarieren (wie jede andere Prozedur auch), dort kommt auch "external" hin.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| implementation
procedure pinneu(var w_pc,w_kprom,w_var,w_pincode,s_me_fe,w_haendler:string); external;
procedure TForm1.BitBtn2Click(Sender: TObject); var W_PC, W_KPROM, W_VAR, W_PINCODE, S_ME_FE, W_HAENDLER : String; |
Gruss Reinhard
BenBE - Fr 17.11.06 09:41
Du kannst bei Delphi ASM-Sources direkt in den Delphi-Programmsource einbinden ...
Mit folgendem Source geht die direkte Einbindung von ASM-Source:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Procedure WinPin(var w_pc,w_kprom,w_var,w_pincode,s_me_fe,w_haendler:string); asm
end; |
Die externe Einbindung ist wie gezeigt mit
{$L ASM.obj} und der External-Deklaration ...
rpatsch - Fr 17.11.06 14:41
Ich danke euch recht herzlich für die Info. Werde die Sache in den nächsten Tagen mal weiter untersuchen. Falls weitere Fragen auftauchen, melde ich mich wieder.
Nochmals vielen Dank für die schnelle Hilfe.
Rolf
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!