VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I understand that the base gets updated with the segment's new value shifted left by 4(multiplied by 16). Segment CS also gets loaded with it's rights byte (0x9D?).

Does anything else get loaded in real/virtual 8086 mode? What about the other segment descriptor fields, as wel as other segment registers than CS? Or do they not get modified (except the base field)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 1, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

CS isn't updated unless accessed implicitly (int/jmp/call/ret), so you can continue to access memory as though you were in real mode with cs: override, even while DS/ES carry selectors.
When the descriptor is loaded, base, limit, and rights are loaded, too, but only for that register.