hallo,
ich bin kurz vorm ausflippen! ich habe hier so ne nette GDT:
wenn ich jetzt ein register mit dssys-GDT (also dem datenregister des systems) belegen will, dann gibt das laut meinem assembler 0x0A... nach meiner berechnung müsste da aber 0x10 rauskommen, denn für den 0-deskriptor sind es 1word+1double+1word = 8bytes und für den systemcodedeskriptor auch nochmal 2words + 4 bytes, was auch 8bytes macht... und 0x08*2 sind meiner meinung nach 0x10 und net 0x0A... wo ist da der fehler?
vielen dank,
J!N
ich bin kurz vorm ausflippen! ich habe hier so ne nette GDT:
Code: [Auswählen]
GDT:
dw gdt_limit
dd GDT
dw 0
cssys:
dw 0x0100
dw 0x0000
db 0x00
db 10011010b
db 11000000b
db 0x0000
dssys:
dw 0x0100
dw 0x0000
db 0x00
db 10010010b
db 11000000b
db 0x0000
csprg:
dw 0xFFFF
dw 0x0000
db 0x10
db 11111010b
db 11001111b
db 0x00
dsprg:
dw 0xFFFF
dw 0x0000
db 0x10
db 11110010b
db 11001111b
db 0x00
gdt_limit equ $-GDT-1
wenn ich jetzt ein register mit dssys-GDT (also dem datenregister des systems) belegen will, dann gibt das laut meinem assembler 0x0A... nach meiner berechnung müsste da aber 0x10 rauskommen, denn für den 0-deskriptor sind es 1word+1double+1word = 8bytes und für den systemcodedeskriptor auch nochmal 2words + 4 bytes, was auch 8bytes macht... und 0x08*2 sind meiner meinung nach 0x10 und net 0x0A... wo ist da der fehler?
vielen dank,
J!N

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert
