汇编笔记(1)

数据段:
E=0(都可读)
0 ED W A

ED=0:向高扩展
ED=1:向低扩展

W=0:不可写
W=1:可写

A=0:未访问
A=1:已方问

代码段:
E=1(不可写,若需要对代码段进行写入操作,则必须使用别名技术)
1 C  R A
C=0:不是一致代码段(普通代码段)
C=1:是一致代码段。

R=0:不可读,只能执行
R=1:可读可执行

A=0:未访问
A=1:已方问


一个任务可使用的整个虚拟地址空间分为相等的两半,一半空间的描述符在全局描述符表中,另一半空间的描述符在局部描述符表中。由于全局和局部描述符表都可以包含多达8192个描述符,而每个描述符所描述的段的最大值可达4G字节,因此最大的虚拟地址空间可为:
4GB*8192*2=64MMB=64TB


选择子=>描述符=>段基地址,
段基地址 + 偏移 = 线性地址。

选择子中的描述符索引字段13位=>描述符表最多包含8192个描述符。

由于每个描述符长8字节,屏蔽选择子低3位后的值就是选择子所指定的描述符在描述符表中的

偏移,

有一个特殊的选择子称为空(Null)选择子,它的Index=0,TI=0,而RPL字段可以为任意值。
空选择子有特定的用途,当用空选择子进行存储访问时会引起异常。空选择子是特别定义的,
它不对应于全局描述符表GDT中的第0个描述符,因此处理器中的第0个描述符总不被处理器访

问,一般把它置成全0。但当TI=1时,Index为0的选择子不是空选择子,
它指定了当前任务局部描述符表LDT中的第0个描述符。

原文地址:https://www.cnblogs.com/huqingyu/p/88052.html