sgdt fword ptr [rsp]\r
mov eax, [rsp + 2] ; eax = GDT base\r
add esp, 8\r
- mov edx, eax\r
- add edx, GDT_SIZE\r
- mov [rax + TSS_SEGMENT + 2], dl\r
- mov [rax + TSS_SEGMENT + 3], dh\r
- DB 0c1h, 0eah, 10h ; shr edx, 16\r
- mov [rax + TSS_SEGMENT + 4], dl\r
- mov [rax + TSS_SEGMENT + 7], dh\r
- mov edx, eax\r
mov dl, 89h\r
mov [rax + TSS_SEGMENT + 5], dl ; clear busy flag\r
mov eax, TSS_SEGMENT\r