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*


Anmelden zum Antworten