R.I.P Terry (merak etme baba bende gelecem yanına)

ZIP indir
0
main
1 dal
git@carbon4code.com:ozsipahi/NakedOS.git
Ömer Özsipahi feature: C kernel
9 commit
gdt.asm 1.2 KB
_gdt_start:

_gdt_null: ; gdt null segment descriptor. bunun koyulması zorunlu herhengi yanlış bir segment girildiğini işlemci buraya düşer.
    dd 0x0
    dd 0x0

_gdt_code: ; gdt code segment descriptor.
    
    dw 0xffff ; GDT limit flag'i max değeri verdik ram'in tamamını kullanabilmek için
    dw 0x0 ; GDT base değerleri ilki 16 bitlik yer kapladığı için dw olarak tanımladık ikincisi 8 bitlin yer kaplıyor. GDT'nin nerden başlayacağının
    db 0x0 ; offset'ini tutar.
    db 10011010b ; flag and type bitleri sondaki b binary olduğunu belirtmek için detaylı bilgi WritinOS.pdf page 36 <----|
    db 11001111b ; ikinci flag bitleri --------------------------------------------------------------------------|
    db 0x0 ; son base belirteci (intel mühendislerine götten. yapacakları segmentlemeyi sikim).

_gdt_data: ; gdt data segment descriptor

    dw 0xffff
    dw 0x0
    db 0x0
    db 10010010b ; first flags and type flags. first flags code segment ile aynı type flag'ler değişiyor sadece code flag'i farklı
    db 11001111b ; second flag. code segment'i ile aynı
    db 0x0

_gdt_end:


_gdt_descriptor:
    dw _gdt_end - _gdt_start - 1
    dd _gdt_start

CODE_SEG: equ _gdt_code - _gdt_start
DATA_SEG: equ _gdt_data - _gdt_start