So I wrote a quick function to dump a segment descriptor, and came up with:00017461598e[CPU0 ] load_seg_reg(DS): valid bit cleared
00017461598e[CPU0 ] interrupt(): gate descriptor is not valid sys seg
00017461598e[CPU0 ] interrupt(): gate descriptor is not valid sys seg
00017461598i[CPU0 ] protected mode
00017461598i[CPU0 ] CS.d_b = 32 bit
00017461598i[CPU0 ] SS.d_b = 32 bit
00017461598i[CPU0 ] | EAX=00000010 EBX=00103004 ECX=00000002 EDX=00000002
00017461598i[CPU0 ] | ESP=0010afac EBP=0010afd8 ESI=000247d8 EDI=00030658
00017461598i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af PF cf
00017461598i[CPU0 ] | SEG selector base limit G D
00017461598i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00017461598i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00017461598i[CPU0 ] | EIP=00100066 (00100066)
00017461598i[CPU0 ] | CR0=0x00000011 CR1=0 CR2=0x00000000
00017461598i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
00017461598i[CPU0 ] >> mov ds, ax : 8ED8
00017461598e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
Anything obvious I'm missing here? I don't see a bit called "valid" in the manual, is that referring to something else? (present is set on all of them.)Segment 0: base 00000000, limit 00000000, accessed 0, writable 0, direction 0, exec 0, sys 1, dpl 0, present 1, bitness 1, granularity 1.
Raw: 00 00 00 00 00 90 c0 00
Segment 1: base 00000000, limit 000fffff, accessed 0, writable 1 [this is my code segment so I think this is "conforming" or something instead, but my dump function doesn't know the difference.], direction 0, exec 1, sys 1, dpl 0, present 1, bitness 1, granularity 1.
Raw: ff ff 00 00 00 9a cf 00
Segment 2: base 00000000, limit 000fffff, accessed 0, writable 1, direction 0, exec 0, sys 1, dpl 0, present 1, bitness 1, granularity 1.
Raw: ff ff 00 00 00 92 cf 00
Thanks.