GDTR df 0 ; This will receive the contents of the IDTR
; register
CallPtr dd 00h ; As we're using the first descriptor (8) and
dw 0Fh ; its located in the LDT and the privilege level
; is 3, our selector will be 000Fh.
; That is because the low-order two bits of the
; selector are the privilege level, and the 3rd
; bit is set if the selector is in the LDT.
OurGate dw 0 ; Offset low-order word
dw 028h ; Segment selector
dw 0EC00h ;
dw 0 ; Offset high-order word
; Call _Sprintf to change stack
keepesp0 dd 0
keepesp dd 0
keepeip dd 0
MyStack db 512 dup(0)
you should come into the ring0.
it is better for you to access
the io port.
if you use 16bit dll and so on.
you can access the io port directly
by OUT 0234H, IN 0234H.