1)存储器编址
- 由于微处理器内部的寄存器和ALU都是16位的,为了方便20位的地址管理,在8086对存储器管理的设计中,采用了分段管理的技术。
- 采用分段方法进行编址的优点:
- 减少指令长度,提高指令执行速度。
为程序的浮动装配创造了条件。
(1)物理地址和逻辑地址
对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。
- 用户编程时,采用逻辑地址,形式为: 段地址 : 偏移量
一个存储单元具有一个唯一的物理地址,但具有多个逻辑地址。
(2)逻辑地址转换为物理地址
将逻辑地址中的段地址左移4位,加上偏移量就得到20位物理地址。
(3)段寄存器使用时的一些基本约定
(4)段分配方式8086对逻辑段要求:
每个段最大限制为64KB
段地址的低4位为0000B
各段可以独立占用64KB存储区,各段也可以允许重叠1MB空间最多能分成64K段
- 1MB空间最少能分成16个段
(5)8086系统几个固定使用的区域
00000H~003FFH:中断向量表
B0000H~B0F9FH:单色显示器的显示缓冲区
B8000H~BBF3FH:彩色显示器的显示缓冲区
FFFF0H~FFFFFH:无条件转移指令
2)I/O编址
- 8086允许有65536(64K)个8位的I/O端口,两个编号相邻的8位端口可以组合成一个16位的端口。(BHE#=0、A0=0)
- 8086的I/O可采用独立编址方式
- I/O地址空间:64K
- 端口地址范围:0000~FFFFH
- 8位/16位端口
- 对I/O端口操作时,需要用专门的指令进行操作,并且只能够通过累加器(AL或AX)来完成。
- - 8086的I/O亦可采用统一编址方式