OK, I've gotten Bochs to recognise the proper segments and made sure CS:EIP is right. Here is the error Bochs thows at me:
Code: Select all
00022978680e[CPU0 ] fetch_raw_descriptor: GDT: index (ff57)1fea > limit (77)
00022978680e[CPU0 ] fetch_raw_descriptor: GDT: index (ff57)1fea > limit (77)
00022978680e[CPU0 ] fetch_raw_descriptor: GDT: index (ff57)1fea > limit (77)
00022978680i[CPU0 ] v8086 mode
00022978680i[CPU0 ] CS.d_b = 16 bit
00022978680i[CPU0 ] SS.d_b = 16 bit
00022978680i[CPU0 ] | EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
00022978680i[CPU0 ] | ESP=00081000 EBP=00000000 ESI=00000000 EDI=00000000
00022978680i[CPU0 ] | IOPL=3 id vip vif ac VM RF nt of df IF tf sf zf af pf cf
00022978680i[CPU0 ] | SEG selector base limit G D
00022978680i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00022978680i[CPU0 ] | CS:0000( 0001| 0| 3) 00000000 0000ffff 0 0
00022978680i[CPU0 ] | DS:0015( 0002| 0| 3) 00000150 0000ffff 0 0
00022978680i[CPU0 ] | SS:0015( 0002| 0| 3) 00000150 0000ffff 0 0
00022978680i[CPU0 ] | ES:0015( 0002| 0| 3) 00000150 0000ffff 0 0
00022978680i[CPU0 ] | FS:0015( 0002| 0| 3) 00000150 0000ffff 0 0
00022978680i[CPU0 ] | GS:0015( 0002| 0| 3) 00000150 0000ffff 0 0
00022978680i[CPU0 ] | EIP=00001024 (00001024)
00022978680i[CPU0 ] | CR0=0x00000011 CR1=0 CR2=0x00000000
00022978680i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
00022978680i[CPU0 ] >> jmp .+0xfffe (0x00001024) : EBFE
00022978680e[CPU0 ] exception(): 3rd (10) exception with no resolution, shutdown status is 00h, resetting