Tim Roberts replied to Lars Erdmann:
>>I have a question about protected mode under x86:
>>Consider this instruction:
>>mov eax, ds:[bx] (mov eax, [bx])
>>...
>>But what if the segment BASE (of for example DS) is say 0xFFFFFFFF and the
>>limit (of for example BX) is say 0xFFFFF ?
>>In this case, can't I create a resulting linear address that will wrap
>>around into the low address space (say the first 16 MB) : 0xFFFFFFFF +
>>0xFFFFF = 0x1000FFFFE = 0xFFFFE ?
> No. If the sum of the segment base plus the offset produces an overflow,
> that causes a general protection fault.
Shouldn't exc0x0d be raised on such an segment-load already ?
I have to confess that I never checked rollover on PM16 in practice...
(in opposition to RM-rollover it looks impossible with PM32 anyway)
even such a rollover condition can be setup in a segment-decriptor, it seems
that all PC-hardware I had in hand act quite strange (fully lock)
on any attempt to read above a certain address also without rollover.
There are 'firmware-hubs' and 'mapped-away' regions at the end of 4G RAM,
these seem to be owned by hardware and not meant to be accessed by CPU.
I once tried to remap this memory-range as readable, but then the whole
thing didn't work any more (just locked up, by any luck no smoke, and
most BIOS-settings were messed up and needed a master-reset to recover).
__
wolfgang