1.内存寻址
- 逻辑地址
包含在机器语言中用来 指定一个操作数或者一条指令的地址。
每个逻辑地址由一个段segment 和 偏移量offset 组成,偏移量表示从段开始的地方到实际地址之间的距离。
- 线性地址(虚拟地址)
是一个32位无符号整数,可以用来表示高达4GB的地址,常用十六进制数表示,0x00000000~0xffffffff
- 物理地址
用于内存芯片级内存单元的寻址,与从微处理器的地址引脚发送到内存总线上的电信号相对应。
内存控制单元MMU:
======逻辑地址 ====》 【分段单元】 ====线性(虚拟)地址====》【分页单元】===物理地址===》
2.硬件中分段
2.1段选择符和段寄存器
逻辑地址由 段标识符 和 一个指定段内相对地址的偏移量 组成。
段标识符是一个16位长的字段,称为段选择符。
偏移量时一个32位长的字段。
段寄存器目的是存放段选择符,有以下段寄存器:
CS:代码段寄存器 code
SS:栈段寄存器 stack
DS:数据段寄存器 data
ES,FS,GS段寄存器一般用途,指向任意的数据段