Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Assembler gesucht! (https://www.delphipraxis.net/16030-assembler-gesucht.html)

Borti 15. Feb 2004 11:22

Re: Assembler gesucht!
 
Zitat:

Mir scheint doch, daß du nur einen der LPTs ansprechen willst. Das sollte auch ohne Treiber möglich sein.
leider nicht unter den 32-bit versionen von windows.
was meinst du mit
Zitat:

Also, "Interrupts aufrufen" kein Problem ... nur welchen?!? Windows selbst hat nen eigenen Mux-Int und Int3 sollte jedem Debugger-Besitzer auch unter Windows was sagen.
Ich hör zum ersten mal davon
gruß,
Borti

Chewie 15. Feb 2004 13:01

Re: Assembler gesucht!
 
Zitat:

Zitat von Borti
Zitat:

Mir scheint doch, daß du nur einen der LPTs ansprechen willst. Das sollte auch ohne Treiber möglich sein.
leider nicht unter den 32-bit versionen von windows.

Wieso denn nicht? Eine Möglichkeit: Du öffnest die Datei \\.\LPT (ich hoffe, so heißt sie) und benutzt das Handle in DeviceIOControl.

Assarbad 15. Feb 2004 15:44

Re: Assembler gesucht!
 
Eben, geb ich Chewie voll recht.

Und Interrupts siehe oben + Int2Eh als MUXer

herges 15. Feb 2004 16:18

Re: Assembler gesucht!
 
o.k. Leute wir programmieren in der Schule Delphi, da noch die Version 5.
Und da verwenden wir diese Methode:
Delphi-Quellcode:
asm
   push dx
   mov dx, 888
   mov al, Datenwert
   Out dx, al
   pop dx
end;
Mit Handle kann ich zwar grad nich viel anfangen.
Könnte das mir armen Schüler mal einer genauer erklären, ich kam mit den englischen Help-files noch nie klar.
(Liegt nicht am Englisch.)

Gruß
herges

Assarbad 15. Feb 2004 16:27

Re: Assembler gesucht!
 
Super, funzt unter Win9x (unter Umständen), auf NT-basierten Systemen wird das Programm sich sehr schnell beruhigen, denn es hat nicht die Rechte privilegierte Befehle auszuführen.

Chewie 15. Feb 2004 17:11

Re: Assembler gesucht!
 
Mit meinen sehr beschränkten Assembler-Kenntnissen würd ich sagen:

Delphi-Quellcode:
asm
   push dx           ; Inhalt des Registers DX auf Stack sichern
   mov dx, 888        ; Dezimalzahl 888 in Register DX schreiben
   mov al, Datenwert ; in das Low-Byte des Registers den Wert von Datenwert schreiben
   Out dx, al        ; den Datenwert an den Port 888 = LPT senden
   pop dx            ; den Inhalt, den DX vorher hatte, wieder in DX schreiben
end;
Ist vielleicht als Anschauungsbeispiel, wie so eine Peripherieansteuerung funktioniert, ganz OK, aber in einem Programm, das wirklich für was gut ist und auch unter WinNTff laufen soll, wenig geeignet.

herges 15. Feb 2004 19:15

Re: Assembler gesucht!
 
O.K. war einen Versuch wert.
War von unserem Lehrer ja auch als Beispiel gedacht.
Aber ich schlag mich auch schon mit dem Problem herum.
Deshalb ja auch die Frage nach dem Handle.

Chewie 15. Feb 2004 19:19

Re: Assembler gesucht!
 
Ach so, das Handle. Also:

Unter Windows gibt es eine Vielzahl von Objekten. Jede geöffnete Datei, jedes erzeugte Fenster, jeder Thread usw. ist ein solches Objekt. Um mit einem Objekt irgendwas machen zu können, benötigt man einen Zugriff darauf. Solch einen Zugriff nennt man ein Handle. Handle heißt ja soviel wie Griff, stell dir vor, du hast einen Griff, über den du dein Objekt steuerst. Genauso machst du das mit der Datei: Du lässt dir einen Griff reservieren (CreateFile) und benutzt diesen, um das Objekt zu steuren (DeviceIOControl). Wenn du fertig bist, lässt du den Griff wieder los (CloseHandle).

Assarbad 15. Feb 2004 19:54

Re: Assembler gesucht!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schöne Erklärung. Hier nochmal die Vielzahl an Objekttypen im Bild (siehe Anhang) auf einem W2K Pro.

http://www.delphipraxis.com/download.php?id=4073

Borti 16. Feb 2004 12:20

Re: Assembler gesucht!
 
ok, das mit dem handle scheint ein ganz vielversprechender ansatz zu sein. könnt ihr mir mal den code posten? (Ich hab's gestern schon versucht mich selber durch dieverse Bücher, websites und die online-hilfe durchzubeißen bin aber kläglich gescheitert.
Danke,
Borti


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 2 von 3     12 3      

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