Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateien in Assembler öffnen (https://www.delphipraxis.net/79037-dateien-assembler-oeffnen.html)

fdsgbla 15. Okt 2006 11:43


Dateien in Assembler öffnen
 
Warum kommt bei folgender Prozedur:


Delphi-Quellcode:
procedure TMainForm.DeleteFile;
var
  filename : string;
begin
  filename := 'c:\file.txt';
asm
  mov ah, 3Ch
  lea dx, filename
  xor cx, cx
  int 21h
  xchg ax,bx
end;
end;
zu

Im Projekt blablabla.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Access violation at address 0045338D in module 'blablabla.exe'. Read of address FFFFFFFF' aufgetreten.

Flocke 15. Okt 2006 14:08

Re: Dateien in Assembler öffnen
 
Weil das 16-Bit DOS-Code ist. Zur Not würde der auch in einem Windows 3.1-Programm funktionieren, aber nicht unter 32 Bit, das API ist dort völlig anders.

fdsgbla 15. Okt 2006 16:08

Re: Dateien in Assembler öffnen
 
Zitat:

Zitat von Flocke
Weil das 16-Bit DOS-Code ist. Zur Not würde der auch in einem Windows 3.1-Programm funktionieren, aber nicht unter 32 Bit, das API ist dort völlig anders.

achso, danke schön.

könntest du vllt sagen oder einen Link geben, wo steht wie man Dateien mit Win32 öffnnet

r2c2 15. Okt 2006 16:40

Re: Dateien in Assembler öffnen
 
Meinst du vielleicht Delphi-Referenz durchsuchenAssignFile, Delphi-Referenz durchsuchenReset & Co? oder MSDN-Library durchsuchenOpenFile?

mfg

Christian

Neutral General 15. Okt 2006 16:42

Re: Dateien in Assembler öffnen
 
Zitat:

Zitat von r2c2
Meinst du vielleicht Delphi-Referenz durchsuchenAssignFile, Delphi-Referenz durchsuchenReset & Co? oder MSDN-Library durchsuchenOpenFile?

mfg

Christian

Ja und was ist dadran Assembler ? :mrgreen:

r2c2 15. Okt 2006 16:49

Re: Dateien in Assembler öffnen
 
Zitat:

Zitat von Neutral General
Ja und was ist dadran Assembler ? :mrgreen:

[Halbwissen]
Kann per Call aufgerufen werden. Rein mit Assembler wird es nicht mehr gehen(außer man programmiert alles nach, aber für was?). [Viertelwissen] Wobei der oben geportete ASM-Code IMHO auch nur n Interupt auslöst, der ne DOS-Funktion aufruft. Ergo: Is auch nix anderes als n Call ner OS-Funktion. [/Viertelwissen] Seit Windows sind aber IRQs für Anwendungsprogramme verboten. int 21h geht also nicht mehr wegen is nicht...
[/Halbwissen]

mfg

Christian

Neutral General 15. Okt 2006 16:52

Re: Dateien in Assembler öffnen
 
Zitat:

Zitat von r2c2
Zitat:

Zitat von Neutral General
Ja und was ist dadran Assembler ? :mrgreen:

[Halbwissen]
Kann per Call aufgerufen werden. Rein mit Assembler wird es nicht mehr gehen(außer man programmiert alles nach, aber für was?). [Viertelwissen] Wobei der oben geportete ASM-Code IMHO auch nur n Interupt auslöst, der ne DOS-Funktion aufruft. Ergo: Is auch nix anderes als n Call ner OS-Funktion. [/Viertelwissen] Seit Windows sind aber IRQs für Anwendungsprogramme verboten. int 21h geht also nicht mehr wegen is nicht...
[/Halbwissen]

mfg

Christian

:mrgreen:

naja gut also entweder gehts nicht durch reines Assembler oder es geht.. (^^). Wenns nicht geht dann isses auch Unsinn die OS-Funktion in Assembler aufzurufen dann kann man gleich normal Win32 Delphi Code benutzen ;)
Wenns doch geht... naja dannhat hier noch niemand gepostet der die Lösung kennt :lol:

Balu der Bär 15. Okt 2006 16:55

Re: Dateien in Assembler öffnen
 
Um ehrlich zu sein sehe ich keinen Sinn darin die Datei mittels Inline Assembler einzulesen. Was soll das bringen? Wie bereits von meinen Vorrednern gesagt, greife auf Windowsfunktionen zurück um die Datei zu laden, dann kannst du die Daten wie auch immer per Assembler bearbeiten, wenn du das willst.

Nils_13 15. Okt 2006 17:36

Re: Dateien in Assembler öffnen
 
Inline Assembler ist doch bei Textdateien (sind ja sogar noch DOS-Textdateien) total schwachsinnig, da die Dateien so klein sind, dass das überhaupt keinen Unterschied macht, ob man es mit Delphi (AssignFile) oder Assembler lädt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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