hi,
Does the 'lgdt' and 'lidt' command require the
physical address of the tables or does the logical address suffice, after paging
is enabled in the kernel.
I mean once paging is enabled do we have to adjust
the logical address or does the paging unit do that for us.
for example suppose u have a
structure describing a 386 descriptor
struct descriptor gdt[MAX_VALUE];
now can i do something like (nasm)
[SECTION .data]
gdt_ptr:
dw 0
;size
dd 0 ;
address
[SECTION .text]
...
lea ebx,_gdt
mov [gdt_ptr+2],ebx
...
;; add the size part also ...and then
lgdt [ebx] ; where ebx points to gdt_ptr
or do i have to do some other calculations to get
give the physical address of the gdt array.
thanx
anurekh
|