Load High Speicher
Geizhals » Forum » Software » Load High Speicher (12 Beiträge, 72 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
....
Re(4): Load High Speicher
20.02.2006, 17:36:25
Dunkelst und ungefähr erinner ich mich (kann im Detail falsch sein - nur das Schema)
Du konntest 640K Speicher adressieren - und die Adressen wurden wie folgt definiert (der Einfachkeit alles im Dezimalsystem):
Beispiel Adresse
1000:5678

Der Linke Teil war in Paragraphen, also *16 - der Rechte Teil wurde dazuaddiert.
1000:5678 die Speicherstelle 16000+5678 = 21678 (was gleichwertig zu 1001:5662 ist ;-) ).

Der Trick war nun, daß bei der Speicherstelle 0xFFFF:0000 das Megabyte erreicht war - und /theoretisch/ 0xFFFF:0001 wieder dasselbe sein sollte wie 0x0000:0001 - also ein Überlauf und von vorne.

Diese A20-Gate-gschicht definierte nun, ob der Überlauf stattfand - oder ob "illegale" 64KB mehr zur Verfügung stehen sollen (A20 von Adreßleitung20 - eben der MB-Grenze) - und das war eben die HMA, die High Memory Area... Ist aber zu lange her, als daß ich noch die Hand dafür ins Feuer lege ;-)

EDIT:
Verwendet wurde der Kram in den Segment-Registern... Im Segmentregister CS, DS,ES  (später auch FS) [für CodeSegment, DatenSegment, ExtraSegment] war praktisch der Linke Teil der Adresse - und du hast in deinen Programmen meist nur 16-Bit-Pointer verwendet - die dann eben in dem Segment waren. Daher hattest auch in den meisten Compilersprachen eine maximale Variablengröße von 64KB - eben in einem Segment - und auch nur 64KB für den Stack - Stack Segment. Wissen, daß die Welt /Gottseidank/ nimmer braucht ;-)

20.02.2006, 17:40 Uhr - Editiert von gepeinigter_aon_neukunde, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung