首页
社区
课程
招聘
[旧帖] Descriptor是什么指令 0.00雪花
发表于: 2010-12-9 18:56 3399

[旧帖] Descriptor是什么指令 0.00雪花

2010-12-9 18:56
3399
我看到一段代码:
[SECTION .gdt]
; GDT
;                              段基址,       段界限     , 属性
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             ; 显存首地址
; GDT 结束

但Descriptor这个指令是什么意思?请知道的指点下?谢谢了。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
descriptor是对象的一个属性,只不过它存在于类的__dict__中并且有特殊方法__get__(可能还有__set__和__delete)而具有一点特别的功能,为了方便指代这样的属性,我们给它起了个名字叫descriptor属性。
2010-12-9 19:27
0
雪    币: 93
活跃值: (55)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
Descriptor 是一个叫“段描述符”的 数据结构,用来指定线性地址中的一段内存
如果你是在看《一个操作系统的实现》或者是《自己动手写操作系统的话》
这个数据结构定义在"pm.inc"文件内:

; usage: Descriptor Base, Limit, Attr
;        Base:  dd
;        Limit: dd (low 20 bits available)
;        Attr:  dw (lower 4 bits of higher byte are always 0)
%macro Descriptor 3
        dw        %2 & 0FFFFh                                ; 段界限1
        dw        %1 & 0FFFFh                                ; 段基址1
        db        (%1 >> 16) & 0FFh                        ; 段基址2
        dw        ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh)        ; 属性1 + 段界限2 + 属性2
        db        (%1 >> 24) & 0FFh                        ; 段基址3
%endmacro ; 共 8 字节
2010-12-11 22:24
0
游客
登录 | 注册 方可回帖
返回
//