Gil Hamilton mentioned:
....
>>> when cpu run to the instuction 'mov gs, cx', CPU will reset.
>>> i can assure the value in cx is correctly.
>> A MOV GS, with whatsoever value wont raise an exception except
>> if the CPU don't got a GS (EXCeption06 on x286 and previous).
>> 512 KB RAM ? mmh, are you sure you have a 486 CPU ?
> Not sure where you got this. According to the Intel programming manual:
> If the destination operand is a segment register (DS, ES, FS,
> GS, or SS), the source operand must be a valid segment selector.
> In protected mode, moving a segment selector into a segment
> register automatically causes the segment descriptor information
> associated with that segment selector to be loaded into the
> hidden (shadow) part of the segment register. While loading this
> information, the segment selector and segment descriptor
> information is validated (see the "Operation" algorithm below).
> The segment descriptor data is obtained from the GDT or LDT
> entry for the specified segment selector.
You are right, I assumed a fully defined GDT/LDT setup ...
It will raise exception0D for a value beyond GDT-limit
or a not present LDT.
__
wolfgang


|