CodeForum.chCode ForenAssemblyThema: Programmieren im Protected Mode
Seiten: [1]
AntwortenDrucken
Autor Thema: Programmieren im Protected Mode  (Gelesen 2730 mal)
VirusXP
Neu hier
*
Offline Offline

Beiträge: 21


WWW
« am: 12. Februar 2005, 15:14:43 »
ZitierenZitat

Nach langem rumprobieren (und nachlesen) ist es mir gelungen bei meinem kleinen OS bei Systemstart in den Protected-Mode (das gelobte Land :wink: )
zu wechseln. Nun stehe ich aber vor dem Problem, dass ich in PM keine Möglichkeit hab mit Interrupts zu arbeiten. Kurzum ich suche jetzt Infos darüber wie ich nur mit Hilfe von Ports (soweit bin ich schon dass ich das wei?? was ich benutzen muss, aber halt nich wie) mich in PM zurechtfinden kann (Ausgabe von Zeichen, Einlesen von Zeichen und son kram).

Wäre sehr glücklich über viele, viele Beiträge Grinsend
Moderator informieren   Gespeichert
Backtickz
Groupie
*
Offline Offline

Beiträge: 452



WWW
« Antworten #1 am: 13. Februar 2005, 17:30:42 »
ZitierenZitat

also ich kenne mich nicht mit der programmierung aus - aber normalerweise solltest du interrupts ausführen können - du mu??t halt den protected mode richtig initialisieren Zwinkernd.

Eigentlich mü??test du interrupts bis zum abwinken ausführen können, solange sichergestellt ist, das dein code auf ring 0 ausgeführt wird.... Vielleicht denkt dein Prozessor dein code wäre eine applikation ?

Vielleicht hilft dir auch das Stichwort: Callgates.
Moderator informieren   Gespeichert
Backtickz
Groupie
*
Offline Offline

Beiträge: 452



WWW
« Antworten #2 am: 21. Februar 2005, 20:36:01 »
ZitierenZitat

also ich meine, io ports benutzen, das war vor den ints...

versuch doch einfach mal die interrupts wieder anzushalten =) - da gibts ja nen opcode für.

edit:
nochmal Smiley

also ich hoffe dir ist klar das es keine DOS interrupts geben kann, weil du dein eigenes OS hast.

und jetzt mal ein abschnitt aus dem Buch "windows assembly language and systems programming":

Zitat

Protected Mode Interrupts
------------------------------

Just as segment registers no longer represent real addresses, so too
the interrupt mechanism no longer uses the Interrupt Vector Table
(IVT).

...

So, just where is this IVT? ... The IVT
sits in RAM right down at OOOO:OOOO, occupying the first 1024
bytes. It is set up by the BIOS startup routine and filled in by DOS
also.

The fundamental problem is that it contains real segment
addresses, which is a no-no in Protected mode (though is ok in
virtual-86 mode). Therefore a special table has to be created by
the Windows operating system, called the Interrupt Descriptor
Table (IDT), which contains the linear addresses of the services.
Linear addresses are real, but they are actual 24- or 32-bit
addresses, without the segment:offset structure.


vielleicht hilfts...

Und sag mal was dazu Zwinkernd
Moderator informieren   Gespeichert
MatrixOs
Neu hier
*
Offline Offline

Beiträge: 5


« Antworten #3 am: 03. April 2005, 09:39:30 »
ZitierenZitat

Also AFAIK musst du im PMode die Interrupts selbst definieren(teilweise)
Such mal nach IDT / GIDT(bin nicht mehr sicher), die müsste ähnlich der GDT LDT aufgebaut sein. IDT=Interrupt Description Table.
Allerdings müsste es bereits einige Interrupts geben, zb den Hardware Timer, bin aber nie soweit gekommen, weil mir die Infos gefehlt haben

PS, kannst du mir n paar links mailen, wo du deine infos z.t. pmode herhast?

wäre cool
Moderator informieren   Gespeichert
MatrixOs
Neu hier
*
Offline Offline

Beiträge: 5


« Antworten #4 am: 03. April 2005, 09:45:24 »
ZitierenZitat

sorry, neumitglied, ich wollt mir nur die benachrichtigung auf neue Themen sichern
Moderator informieren   Gespeichert
MatrixOs
Neu hier
*
Offline Offline

Beiträge: 5


« Antworten #5 am: 06. April 2005, 10:58:20 »
ZitierenZitat

Hi, danke, jetzt kann ich mich weiter damit beschäftigen:-)
Moderator informieren   Gespeichert
MatrixOs
Neu hier
*
Offline Offline

Beiträge: 5


« Antworten #6 am: 06. April 2005, 12:24:35 »
ZitierenZitat

Titel sagts ja eigentlich schon alles, wäre mal gespannt, was dein os schon so leistet(besonders das unsichtbar)
Moderator informieren   Gespeichert
Seiten: [1]
AntwortenDrucken
CodeForum.chCode ForenAssemblyThema: Programmieren im Protected Mode
Gehe zu:  

 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc