|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 幕府幽魂 于 2011-6-29 00:32 编辑
WIN32位下的汇编是16位汇编的升级,由于32位CPU是32根地址线,通用寄存器也是32位,所以通用寄存器可以直接访问到所有内存地址,于是16位汇编里面的通用寄存器通过段地址+偏移访问内存的方式,在32位汇编里就失去了意义。那么段寄存器是否就没用了呢,非常有用,仍然是定位各程序所用内存段的关键。各运用程序包括系统程序的各个段,都被放在线性的虚拟内存中,而这些程序和系统的段在线性的虚拟内存中的位置以及属性,是通过一种叫描述符定义或者映射。描述符应该是都被集合在在一个叫全局描述表的内存段中,(一个描述符应该占多少位呢?32位吧?)。这个内存段只能被一个48位的叫全局描述符表寄存器(GDTR)来管理。各个运用程序的描述符也对应或者映射一段内存,这段内存叫局部描述符表,这个表里又有各个运用程序的各个段的描述符,而管理这段内存的寄存器是一个16位的寄存器叫局部描述表寄存器(LDTR),。而48位的全局描述表寄存器和16位的局部描述表寄存器就相当于16位中的段寄存器。
|
|