warum geht das unter win2k sp4?

Für allgemeine Fragen zur Programmierung mit PureBasic.
topsoft
Beiträge: 67
Registriert: 16.09.2004 11:55
Wohnort: nrw

warum geht das unter win2k sp4?

Beitrag von topsoft »

Hallo

ich habe folgenden Code:

Code: Alles auswählen

Procedure.l Inp8(Adresse.w)
    MOV dx, Adresse
    IN al, dx
    AND eax, $FF
    ProcedureReturn
EndProcedure

Procedure Out8(Adresse.w, Daten.b)
    MOV dx, Adresse
    MOV al, Daten
    OUT dx, al
EndProcedure

For z.w = 0 To $FF
    Out8($378, z)
    Debug Hex(Inp8($378))
Next z
End
Unter Win2k sollte dieser Code ja eine Expression auslösen, tut er aber nicht sondern er funzt prächtig! ? Kann sich das einer erklären oder bringe ich hier was durcheinander?

Gruß Topsoft
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

Wenn du mir sagst was ne Expression ist kann ich vieleicht Helfen!
mfg
netfreak
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Durch den NT-Kernel sollten eigentlich 'unsichere' Asm Befehle nicht mehr zugelassen sein und einen Crash des Programms verursachen (WinXP).
Hab aber keine Ahnung ab welcher Version.
Ist mir auch grad n Rätsel...

cu, remi
topsoft
Beiträge: 67
Registriert: 16.09.2004 11:55
Wohnort: nrw

Beitrag von topsoft »

Hallo

Eine Expression wird vom Prozessor ausgelöst wenn z.B ein privilegierter Befehl von einem normalem Programm ausgeführt werden soll. Das dürfen im Falle von "In" und "Out" nur Treiber und das Betriebssystem selber. Zumindestens bei Windows NT 2K XP. In diesem Fall könnte man sagen es ist eine Fehlermeldung und das Programm wird beendet. Normalerweise, aber was ist schon normal ;-)

Gruß Topsoft
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

topsoft hat geschrieben: Eine Expression wird vom Prozessor ausgelöst wenn z.B ein privilegierter Befehl von einem normalem Programm ausgeführt werden soll. Das dürfen im Falle von "In" und "Out" nur Treiber und das Betriebssystem selber. Zumindestens bei Windows NT 2K XP. In diesem Fall könnte man sagen es ist eine Fehlermeldung und das Programm wird beendet. Normalerweise, aber was ist schon normal ;-)
Du meinst jetzt aber nicht eine Exception, oder? Denn Expression habe ich in dem Zusammenhang noch nie gehört. Für mich ist ein "Expression" ein (mathematischer) Ausdruck oder Äußerung bei der Programmierung, also sowas wie i + 5 * x
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Antworten