实模式:
寻址:(采用分段的方式)
实际物理地址=(段寄存器<<4)+便宜地址
这样实现16位内存地址到20位物理地址的转换
实模式下的寻址方式:
1.立即数寻址: MOV AX,1234H
2.寄存器寻址: MOV AX,BX
3.直接寻址: MOV AX,[1234H]
4.寄存器间接寻址: MOV AX,[BX]
5.基址寻址: MOV AX,[BX+1000H]
6.变址寻址: MOV AX,[SI+100H]
7.基址加变址寻址: MOV AX,[BX+SI]
8.带位移的基址加变址寻址: MOV AX,[BX+SI+100H]
保护模式:
分段机制:利用段选择子的偏移量到全局描述符中找到需要的段描述符,段描述符中存放这真正的段的物理地址,然后加上偏移地址量就得到最后的物理地址。(针对于32位平台不需要将段首地址左移四位),发生溢出则将溢出位舍弃。
理解段选择子,描述符的概念:
段描述符:(理解的意义上)段描述符是一个结构体,有三个成员变量:段物理首地址、段界限、段属性,在内存中存在一个数组(全局描述符表,Global Descriptor Table)维护一组这样的结构体。
段选择子:存储对应结构体在该数组中的下标,也就是索引,通过该索引从数组中找到对应的结构体,从而得到段的物理地址,然后加上偏移地址,得到真正的物理地址。