Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inline asm AV (https://www.delphipraxis.net/85767-inline-asm-av.html)

Neutral General 4. Feb 2007 15:33


Inline asm AV
 
Hi,

Mir fällt jetzt kein besserer Titel ein :oops:
Also ich hab auf ner Seite gesehen das man mit int 13h und entsprechenden Parametern auslesen kann ob ein Laufwerk bereit ist.

Zitat:

HARD DISK - CHECK IF DRIVE READY

AH = 10h
DL = drive number (80h = first, 81h = second hard disk)

Return:
CF set on error
CF clear if successful
AH = status (see #00234 at AH=01h)
Delphi-Quellcode:
function GetDriveReady: Byte; assembler;
asm
  mov AH,10h
  mov DL,80h
  int 13h
  mov Result,AH
  ret
end;
Ich hab ja nicht wirklich Ahnung von Assembler aber was mache ich da falsch? Ich bekomme wenn int 13h aufgerufen wird ne AV

Zitat:

---------------------------
Project1
---------------------------
Access violation at address 0044D94C in module 'Project1.exe'. Read of address FFFFFFFF.
---------------------------
OK
---------------------------
Kann mir einer sagen was ich falsch mache ? :)

Gruß
Neutral General

inherited 4. Feb 2007 15:38

Re: Inline asm AV
 
:lol:
Das ist das geilste, was ich seit langem gesehen habe. Na, was haben wir über Interrupts gelernt? :lol:

Neutral General 4. Feb 2007 15:40

Re: Inline asm AV
 
Ich noch so ziemlich gar nix und deswegen würd ich eher ne Antwort haben, am besten mit Erklärung statt ne dumme Bemerkung -.-

Daniel G 4. Feb 2007 15:43

Re: Inline asm AV
 
Zitat:

Zitat von inherited
:lol: Das ist das geilste, was ich seit langem gesehen habe.

*plonk* Das hat rootforum-Niveau :wall:

@NG: Du kannst unter WindowsXP nicht mehr im Usermode auf die Interrupts zugreifen. Dazu musst du schon in den Kernelmode. (imho :stupid: )

3_of_8 4. Feb 2007 15:44

Re: Inline asm AV
 
Bestimmte Interrupts sind noch erlaubt, oder? *kratz*

Außerdem, gibt das nicht normalerweise nen "Privilegierte Anweisung"-Fehler?

Neutral General 4. Feb 2007 15:46

Re: Inline asm AV
 
grml...k
Und wie kommt man in den Kernelmode?
Oh man immer wieder denk ich mir: "Ok - Lerne ich jetzt mal Assembler.. Is manchmal bestimmt ganz nützlich.." Und jetzt kann man damit ma wieder rein gar nix machen -.-

3_of_8 4. Feb 2007 15:46

Re: Inline asm AV
 
Mit Delphi: Am besten gar nicht.

Glaub mir: Du willst NICHT wissen, was der Delphi-Speichermanager mit deinem Kernel anstellt. Ich will es auch nicht.

Daniel G 4. Feb 2007 15:49

Re: Inline asm AV
 
Zitat:

Zitat von Neutral General
Und wie kommt man in den Kernelmode?

Am Besten mit einem Treiber. :mrgreen:

Genaues weiß ich aber nicht, und Halbwissen möchte ich nicht verbreiten. :wink:

Geht es nur um's lernen? Sonst könnte man ja versuchen, das Problem anders zu lösen...

Neutral General 4. Feb 2007 16:08

Re: Inline asm AV
 
Ja würde halt gerne bisschen besser Assembler können... die ganzen Tutorials sind mir meistens zu kompliziert geschrieben und naja dann hab ich ne Seite gefunden wo die ganzen interrupts dokumentiert waren und dann wollt ich den ein oder anderen mal ausprobieren...

Muetze1 4. Feb 2007 16:13

Re: Inline asm AV
 
Dazu würde ich dir dann zu Turbo Pascal raten und darin üben. Dieses läuft auf dem 16 Bit SubSystem und dort sind die Interrupts angeboten. Du kannst bei Borland z.B. TP5.5 kostenlos runterladen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Seite 1 von 2  1 2      

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