Code: Select all
Servicing hardware INT=0x20
32: v=20 e=0000 i=0 cpl=0 IP=0008:00201155 pc=00201155 SP=0010:0020aff2 env->regs[R_EAX]=0000029e
EAX=0000029e EBX=00000800 ECX=fd10a400 EDX=fd10a69d
ESI=00000002 EDI=00203baa EBP=0020b002 ESP=0020aff2
EIP=00201155 EFL=00200283 [--S---C] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA]
CS =0008 00000000 ffffffff 00cf9a00 DPL=0 CS32 [-R-]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA]
DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA]
FS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA]
GS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0028 e8e86ae8 000d006b 000d8900 DPL=0 TSS32-avl
GDT= 00202c15 0000002f
IDT= 0020b600 000007ff
CR0=80000011 CR2=00000000 CR3=0020d000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
DR6=ffff0ff0 DR7=00000400
CCS=00000081 CCD=fffff89e CCO=EFLAGS
EFER=0000000000000000
Servicing hardware INT=0x20
33: v=20 e=0000 i=0 cpl=3 IP=001b:00401005 pc=00401005 SP=0023:0020b116 env->regs[R_EAX]=deadbeef
EAX=deadbeef EBX=00000800 ECX=fd121600 EDX=00000000
ESI=00000002 EDI=00203baa EBP=0020b1b2 ESP=0020b116
EIP=00401005 EFL=00200202 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
CS =001b 00000000 ffffffff 00cffa00 DPL=3 CS32 [-R-]
SS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
DS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
FS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
GS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0028 e8e86ae8 000d006b 000d8900 DPL=0 TSS32-avl
GDT= 00202c15 0000002f
IDT= 0020b600 000007ff
CR0=80000011 CR2=00000000 CR3=0020d000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
DR6=ffff0ff0 DR7=00000400
CCS=00000000 CCD=0020b11a CCO=EFLAGS
EFER=0000000000000000
check_exception old: 0xffffffff new 0xe
34: v=0e e=0000 i=0 cpl=3 IP=001b:00401005 pc=00401005 SP=0023:0020b116 CR2=e8e86aec
EAX=deadbeef EBX=00000800 ECX=fd121600 EDX=00000000
ESI=00000002 EDI=00203baa EBP=0020b1b2 ESP=0020b116
EIP=00401005 EFL=00200202 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
CS =001b 00000000 ffffffff 00cffa00 DPL=3 CS32 [-R-]
SS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
DS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
FS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
GS =0023 00000000 ffffffff 00cff300 DPL=3 DS [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0028 e8e86ae8 000d006b 000d8900 DPL=0 TSS32-avl
GDT= 00202c15 0000002f
IDT= 0020b600 000007ff
CR0=80000011 CR2=e8e86aec CR3=0020d000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
DR6=ffff0ff0 DR7=00000400
CCS=00000000 CCD=0020b11a CCO=EFLAGS
EFER=0000000000000000
Code: Select all
MOV EAX, 0xDEADBEEF
JMP $
Code: Select all
stub:
pusha
mov edi, esp
push edi
call int_handler
pop edi
popa
add esp, 8
iret
Code: Select all
(gdb) print $esp
$1 = (void*) 0x20b04e
(gdb) print *0x20b04e
$2 = 32
(gdb) print *(0x20b04e+4)
$3 = 0
Lastly, page tables look like this:
Code: Select all
00000000000b8000-00000000000b9000 0000000000001000 -rw <--- video memory
0000000000109000-000000000010b000 0000000000002000 -rw <--- multiboot's stuff (used to load initrd)
0000000000200000-000000000021a000 000000000001a000 -rw <--- kernel space
0000000000401000-0000000000402000 0000000000001000 urw <--- user space
Thanks in advance!!

