Interrupte abschalten
-
Wie schalte ich alle Interrupte aus, um mein Programm maximal zu beschleunigen?
nur cli schaltet nicht alles ab, oder?
-
Hi
cli sollte eigentlich alle interupte deaktivieren ( so weit ich das noch im kopf hab ) nur die NMIs halt nicht NonMaskebelInterrupts. Das sind im wesentlichen die ganzen ausnahmen die ein prozessor werfen kann. Die kann man meines wissens auch nicht deaktivieren, da wenn sowas geworfen wird dein programm sowieso mehr oder weniger abgestürtzt ist.
Noch eine frage programierst du mit irgend einem Betriebsystem wie z.B. Windows oder linux? oder einfach nur auf einem nackten System ggf noch mit einem Dos als untersatz? im RM oder PM? Meine aussage bezieht sich jetzt auf den RM. Im PM in verbindung mit einem Betriebsystem kann das wieder anders aussehen, da dort ggf der Befehl CLI gar keine wirkung zeigt. Währe ja bescheiden wenn man mit soeinem befehl ein ganzes System in die Knie zwingen kann.
gruss
-
hi,
Eric Falbe schrieb:
...um mein Programm maximal zu beschleunigen?
so ein Schwachfug...
NMI's lassen sich sehr wohl abstellen: Im Port 0x70 gibt das höchste Bit an, ob NMI's erlaubt sind (7tes Bit = 1) oder nicht (7tes Bit = 0).
Termite schrieb:
...da dort ggf der Befehl CLI gar keine wirkung zeigt.
Es passiert nicht nichts, sondern es wird ne Exception13 (General Protection Fault) geworfen.
-
@Termite
Ich lasse die asm-Programme auf einem Rechner mit Win 98 laufen.
Und bisher habe ich noch keinen Programmmodus umgeschaltet.
Naja das Windows System ist ja so gut wie abgeschaltet, wenn kein Task aktiv ist.@bluecode
Was ist der Port 070h für ein Port?
Gibt es irgendwo eine gute Port-Liste oder eine Tabelle, wo man sowas nachschauen kann?
-
Port 0x70 ist das Adressregister des CMOS. 0x71 ist das Datenregister des CMOS.
Naja, des mit den Porttabellen is halt so ne Sache. Bei allen PCI Geräten kann man den Port auslesen/einstellen, da er im Konfigurationsbereich (des PCI Device) liegt. Nur bei den älteren Geräten (wie DMA Controller, PIC, PIT, CMOS, PS/2 Keyboard Controller) sind die fix. Ich würd halt mal nach den einzelnen Geräten googlen oder bei bona-fide oder OSRC reinschaun.
-
Eric Falbe schrieb:
@Termite
Ich lasse die asm-Programme auf einem Rechner mit Win 98 laufen.
Und bisher habe ich noch keinen Programmmodus umgeschaltet.
Naja das Windows System ist ja so gut wie abgeschaltet, wenn kein Task aktiv ist.omg
Unter Windows98 kannste nicht einfach "cli ausführen. Du hast zwar imho direkten Portzugriff, aber auch das kann gefährlich werden, wenn die Windowstreiber gleichzeitig draufzugreifen. Ich würd das definitiv unter Windows nicht machen.
Dadurch wird dein Programm auch nicht schneller, du würdest nur das gesamte System lahm legen und glaub mir, dass ist definitiv nicht das, was du willst. Du solltest dich zuerst vielleicht mal mit dem Protected-Mode auseinandersetzen und wirst dann auch relativ schnell einsehen, dass das was du da machen willst Schwachfug ist.