码迷,mamicode.com
首页 > 其他好文 > 详细

Selector Descriptor

时间:2016-05-22 00:34:30      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:


操作系统进行段式寻址时,将seg:offset形式的逻辑地址转换成线性地址。
例如

jmp dword SelectorCode32:0 

 

 

SelectorCode32是段选择子,它指向GDT/LDT表中的一个表项,GDT/LDT中的每个表项中有所指向的代码或数据的段地址

[SECTION .gdt]
;GDT FOUND
;

LABEL_GDT: Descriptor 0,0,0;
LABEL_DESC_CODE32: Descriptor 0, SegCode32Len -1, DA_C + DA_32;
LABEL_DESC_VIDEO: Descriptor 0B8000h, 0ffffh, DA_DRW;

GdtLen equ $-LABEL_GDT ; length of GDT
GdtPtr dw GdtLen-1
dd 0

;GDT selector
SelectorCode32 equ LABEL_DESC_CODE32 - LABEL_GDT
SelectorVideo equ LABEL_DESC_VIDEO - LABEL_GDT

;end of [SECTION . gdt]

 

%macro Descriptor 3
dw %2 & 0FFFFh
dw %1 & 0FFFFh
db (%1 >> 16) & 0FFH
dw ((%2 >> 8) & 0F00H) | (%3 & 0F0FFh)
db (%1 >> 24) & 0FFH
%endmacro

 

在上面的代码中,初始化了GDT表和选择子。选择子的值是表项的偏移量。GDT中的表项指向一个数据结构,其中包含有段基址,段界限和其他的属性。

Selector Descriptor

标签:

原文地址:http://www.cnblogs.com/yangRyoung/p/5515988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!