Ik ben niet zo goed in het starten van topic's en hoop dat het duidelijk is wat ik hier vraag.
Ik heb een stukje tekst waar ik problemen mee heb hierheen gecopieerd en er mijn vragen tussen gezet, volgens mij deugt de tekst niet wat zou verklaren waarom ik het niet begrijp.(het kan natuurlijk ook gewoon aan mij liggen, dat ik er te stom voor ben of zo)
Tot nu toe heb ik geprobeerd via google antwoorden hierop te vinden, helaas.
Ik zou niet weten bij wie ik het nog zou kunnen proberen dus zo kom ik hier terecht.
De tekst luidt:
Een gesegmenteerd adres gebruikt hexadecimalen van vier cijfers voor de meeste geheugenadressen. Het voegt een segmentadres toe wanneer het programma de grenzen van het segment overschrijdt.
Een programma in het eerste segment gebruikt dus een adres van 0000 tot FFFF.
Als het overgaat in het tweede segment, wordt het adressegment 1 toegevoegd, dus kan 1:0000 tot 1:FFFF het adres in het tweede segment zijn.
Een meer algemene manier om dit te zien is het maken van twee groepen van vier cijfers, waarbij de eerste groep de vier belangrijkste cijfers van het segmentadres vertegenwoordigt en de tweede groep de laatste vier belangrijke cijfers.
Een voorbeeld: 1000: 789A. Het eerste deel is minder belangrijk omdat het wordt gebruikt als opvulling.
VRAAG:Hoe kun je nou 3 nullen als lsb(least significant bit) aanvullen?Dan krijg je toch een andere waarde?
Bij een 8088 processor is het grootst bruikbare segmentadres F:FFFF, of conventioneel gezien F000:FFFF.
Vraag:Kan iemand mij vertellen hoe ik dat moet zien? hier wordt dus gesteld dat F net zo groot is als F000?
Elke F representeert vier binaire cijfers of activeerbare adresdraden, en de 8088 had in totaal 20 adresregels, met de namen A0 tot A19. DOS was echter gemaakt voor het accepteren van gesegmenteerde adressen tot FFFF:FFFF.
CONCLUSIE:Als ik dus FFFF met FFFF vermenigvuldig krijg ik FFFE0001, is ruim 4 gig aan geheugen adressen, of zie ik dat verkeerd?
De toegelaten extra adresruimte bij gesegmenteerd adresseren is niet beschikbaar bij de 20 adresregels van de 8088. Met de introductie van de 80286-processor kwamen er vier adresregels bij. Dit betekent dat de 286 letterlijk maximaal 16 Mb geheugenadresruimte kan zien,ondanks datDOS dat niet kan.
OPMERKING:Zie vorige alinea
En houdt ook in dat, door het gebruik van dt extra adresregel A20, een adres van 1FFFFF kan worden bereikt. Het volledige hexadecirnale getal dat door het gesegmenteerde adres van FFFF:FFFF wordt vertegenwoordigd is 1OFFEF
??????????
Ruim binnen het door de fysieke adresregels A0 tot A20 toegestane bereik. Met de juiste tactiek kon DOS nu adressen zien tot maximaal FFFF:FFFF.
Dit was bijna een volledig segment van 64 Kb aan extra geheugen.
Deze 64 Kb (minus 16 bytes) staat nu bekend als High Memory Area (HMA).
Ik heb een stukje tekst waar ik problemen mee heb hierheen gecopieerd en er mijn vragen tussen gezet, volgens mij deugt de tekst niet wat zou verklaren waarom ik het niet begrijp.(het kan natuurlijk ook gewoon aan mij liggen, dat ik er te stom voor ben of zo)
Tot nu toe heb ik geprobeerd via google antwoorden hierop te vinden, helaas.
Ik zou niet weten bij wie ik het nog zou kunnen proberen dus zo kom ik hier terecht.
De tekst luidt:
Een gesegmenteerd adres gebruikt hexadecimalen van vier cijfers voor de meeste geheugenadressen. Het voegt een segmentadres toe wanneer het programma de grenzen van het segment overschrijdt.
Een programma in het eerste segment gebruikt dus een adres van 0000 tot FFFF.
Als het overgaat in het tweede segment, wordt het adressegment 1 toegevoegd, dus kan 1:0000 tot 1:FFFF het adres in het tweede segment zijn.
Een meer algemene manier om dit te zien is het maken van twee groepen van vier cijfers, waarbij de eerste groep de vier belangrijkste cijfers van het segmentadres vertegenwoordigt en de tweede groep de laatste vier belangrijke cijfers.
Een voorbeeld: 1000: 789A. Het eerste deel is minder belangrijk omdat het wordt gebruikt als opvulling.
VRAAG:Hoe kun je nou 3 nullen als lsb(least significant bit) aanvullen?Dan krijg je toch een andere waarde?
Bij een 8088 processor is het grootst bruikbare segmentadres F:FFFF, of conventioneel gezien F000:FFFF.
Vraag:Kan iemand mij vertellen hoe ik dat moet zien? hier wordt dus gesteld dat F net zo groot is als F000?
Elke F representeert vier binaire cijfers of activeerbare adresdraden, en de 8088 had in totaal 20 adresregels, met de namen A0 tot A19. DOS was echter gemaakt voor het accepteren van gesegmenteerde adressen tot FFFF:FFFF.
CONCLUSIE:Als ik dus FFFF met FFFF vermenigvuldig krijg ik FFFE0001, is ruim 4 gig aan geheugen adressen, of zie ik dat verkeerd?
De toegelaten extra adresruimte bij gesegmenteerd adresseren is niet beschikbaar bij de 20 adresregels van de 8088. Met de introductie van de 80286-processor kwamen er vier adresregels bij. Dit betekent dat de 286 letterlijk maximaal 16 Mb geheugenadresruimte kan zien,ondanks datDOS dat niet kan.
OPMERKING:Zie vorige alinea
En houdt ook in dat, door het gebruik van dt extra adresregel A20, een adres van 1FFFFF kan worden bereikt. Het volledige hexadecirnale getal dat door het gesegmenteerde adres van FFFF:FFFF wordt vertegenwoordigd is 1OFFEF
??????????
Ruim binnen het door de fysieke adresregels A0 tot A20 toegestane bereik. Met de juiste tactiek kon DOS nu adressen zien tot maximaal FFFF:FFFF.
Dit was bijna een volledig segment van 64 Kb aan extra geheugen.
Deze 64 Kb (minus 16 bytes) staat nu bekend als High Memory Area (HMA).