2019独角兽企业重金招聘Python工程师标准>>>
一、实模式下的寻址
实模式下的寻址是 段*16+偏移地址
实模式下的寻址 首先根据选择子得到基地址+偏移地址
二、保护模式下的寻址
1.首先要定义一个段描述付的基地址和界限
|<----------------32----------------->|<----------16---------->|
基地址 界限 最大长度2^16 描述符8字节 个数=2^16/2^3
2.一般第一个描述符填空的 描述符占位是8个字节
3. 当开启了保护模式后寻址 段地址的意义
|<---------------13------------>|<---1-->|<---2--->|
(1)前面的13位标示描述符中的索引号,因为每个2^3所以又是2^13*2^3
(2)中间1位标示是全局描述符、局部描述符选择
(3)请求特权级
三、保护模式下堆栈的大小
对于数据段,代码段的大小很好理解;
如果G为是0-字节,1-4K;(段限长+1)*粒度-1;
因为这样,例如:偏移地址当前算一个,也就是偏移为0
对于堆栈段一把情况下是向下增长的
那个偏移地址标示的是访问的最低偏移地址,最高地址没有界限就是0xFFFFFFF
如果esp定义为0,那么当压入栈的时候+基地址可能进位(那么就变成了一个小的数值了、高位省略了)