![]() |
Dateien in Assembler öffnen
Warum kommt bei folgender Prozedur:
Delphi-Quellcode:
zu
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; 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. |
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.
|
Re: Dateien in Assembler öffnen
Zitat:
könntest du vllt sagen oder einen Link geben, wo steht wie man Dateien mit Win32 öffnnet |
Re: Dateien in Assembler öffnen
|
Re: Dateien in Assembler öffnen
Zitat:
|
Re: Dateien in Assembler öffnen
Zitat:
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 |
Re: Dateien in Assembler öffnen
Zitat:
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: |
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.
|
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 10:26 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 by Thomas Breitkreuz