Bin ich total behämmert oder überseh ich hier was
-
Ich hab hier ein ganz ganz dummes Problem. Ich hab meinen Prozessor im Protected mode. Es gibt zwei Deskriptoren. Einen 100MB langen Codesegment deskriptor startet gleich nach der GDT und ein Datensegment Read/Write, das gleich nach dem Codesegment startet und bis 3 GB groß is. Mein testsystem hat 256MB Ram (VM-Ware virtual Workstation)
Der RM Code den ich ausführe is der hier:Start: mov eax, 2 shl eax, 3 ;Selektor für DS erzeugen mov ds, ax ;Nch DS, SS,ES mov ss, ax mov es, ax mov eax, 0 mov fs, ax ;Die breuch ich noch nich mov gs, ax mov esp, 0x1FFFFF ;Der Stack fängt mal hier a mov ebp, 0x1FFFFF jmp 0x8:0x1000 + END ;0x1000 is das Offset END: jmp END ;Zum Ende Springen
Soweit so gut. Endet inner Endlosschleife. Funktioniert sogar
Nur das problem is, wenn ich eine Funktion aufrufe, funzt der rücksprung mit ret nich mehr. VM-Ware meldet einen Fehler und auch mein PC startet neu wenn ich den Code (Natürlich unter eigenem Betriebssystem) laufen lasse. Wiso ist das so?
-
Hat sich schon erledigt hatte vergessen das A20 zu aktivieren und da konnte er den speicher fürn stack nich mehr sehen *peinlich*
-
Hat sich schon erledigt hatte vergessen das A20 zu aktivieren und da konnte er den speicher fürn stack nich mehr sehen *peinlich*