G
Gelöschtes Mitglied 14523
Guest
Hi community
Ich beschäftige mich seit kurzem mit Paging bzw Segmentierung und dabei ist für mich die ein oder andere Frage, was das Umwandeln bzw Berechnen der Adressen betrifft, aufgetreten.
Zur Segmentierung. Ich gehe mal von nen einfachen 8086 Prozessor aus, welcher im Realmode mit 16 bit großen Segment- bzw Offsetregister arbeitet. Die physikalsche Adresse erhält man, wenn man Segmentregister* 16 + Offsetregister rechnet. Soweit sogut.
Nun mal 2 Beispiele zum Berechnen der physikalischen Adresse:
In den Beispielen sprech ich 2 verschieden Segmente an, mit unterschiedlichen Offsetwerten, jedoch ist die physikalische Adresse die selbe?! Währe sehr dankbar für einen Hinweis auf meinen Denkfehler.
Außerdem, liege ich richtig mit meiner Vermutung, dass Segmenttables nur im Protected Mode verwendet werden?
Ich beschäftige mich seit kurzem mit Paging bzw Segmentierung und dabei ist für mich die ein oder andere Frage, was das Umwandeln bzw Berechnen der Adressen betrifft, aufgetreten.
Zur Segmentierung. Ich gehe mal von nen einfachen 8086 Prozessor aus, welcher im Realmode mit 16 bit großen Segment- bzw Offsetregister arbeitet. Die physikalsche Adresse erhält man, wenn man Segmentregister* 16 + Offsetregister rechnet. Soweit sogut.
Nun mal 2 Beispiele zum Berechnen der physikalischen Adresse:
Code:
Segmentadresse: 0000 0001 0000 0000 0000
Offsetadresse: 0001 1100 1001 0110
physikalisch: 0000 0010 1100 1001 0110
Segmentadresse: 0000 0010 0000 0000 0000
Offsetadresse: 0000 1100 1001 0110
physikalisch: 0000 0010 1100 1001 0110
In den Beispielen sprech ich 2 verschieden Segmente an, mit unterschiedlichen Offsetwerten, jedoch ist die physikalische Adresse die selbe?! Währe sehr dankbar für einen Hinweis auf meinen Denkfehler.
Außerdem, liege ich richtig mit meiner Vermutung, dass Segmenttables nur im Protected Mode verwendet werden?