Autor Thema: Simple Memory Management  (Gelesen 3288 mal)

bscreator

  • Gast
Gespeichert
« am: 25. February 2008, 14:19 »
Hab ein ziemliches Defizit was Arbeitsspeicherbelegung angeht.
Da der Bereich C800:0000 - E000:FFFF im Arbeitsspeicher nicht belegt ist, würde ich diesen gern für meine Zwecke nutzen.
Kann ich z.B. mit den folgenden Zeilen
mov bx,0C800h
mov es,bx
mov byte [es:0],al
mov byte [es:1],ah
den Inhalt des AX-Registers im Real-Mode ohne den Stack und Variablen speichern ?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 25. February 2008, 14:50 »
Da der Bereich C800:0000 - E000:FFFF im Arbeitsspeicher nicht belegt ist, würde ich diesen gern für meine Zwecke nutzen.
Das stimmt nicht, dieser Bereich kann vom BIOS belegt sein. zB wird auf jeden Fall mal 0xE0000 - 0xF0000 vom bochs VGA BIOS in Anspruch genommen, da dieses BIOS 128kb groß ist.
Geh einfach in den protected/long mode und du bist einige der Speicherprobleme los. Nicht umsonst sagen die meisten, dass real-mode schon längst obsolet geworden ist :wink:

mov bx,0C800h
mov es,bx
mov [es:0],ax
Ist kürzer und macht das gleiche.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

 

Einloggen