2、各段在存储器中分配 各段在存储器中分配分4种情况讨论 (1).由操作系统负责分配 般情况,各段在存储器中的分配是由操作系统负责 每个段可以独立地占用64K存储区 (2).各段也可以允许重迭 每个段的大小允许根据实际需要分配,不一定要占64KB。 每个存储单元的内容不允许发生冲突 (段可重迭,但使用时防止冲突)
2、各段在存储器中分配 各段在存储器中分配分4种情况讨论: (1).由操作系统负责分配 一般情况,各段在存储器中的分配是由操作系统负责。 每个段可以独立地占用64K存储区。 (2).各段也可以允许重迭 每个段的大小允许根据实际需要分配,不一定要占64KB。 每个存储单元的内容不允许发生冲突 (段可重迭,但使用时防止冲突)
(3).在程序的首部设定各段寄存器的值(汇编语言必须) 如果程序中的四个段都是64K的范围之內, 程序运行时所需要的信息都在本程序所定义的段区之内 程序员只要在程序的首部设定各段寄存器的值就可以了。 (4).动态地修改段寄存器的内容 如果程序的某一段(如数据段)在程序运行过程中会 超过64K空间,或者程序中可能访问除本身四个段以外的其他 段区的信息, 那么在程序中必须动态地修改段寄存器的内容
( 3).在程序的首部设定各段寄存器的值(汇编语言必须) 如果程序中的四个段都是64K的范围之内, 程序运行时所需要的信息都在本程序所定义的段区之内, 程序员只要在程序的首部设定各段寄存器的值就可以了。 ( 4).动态地修改段寄存器的内容 如果程序的某一段(如数据段)在程序运行过程中会 超过64K空间,或者程序中可能访问除本身四个段以外的其他 段区的信息, 那么在程序中必须动态地修改段寄存器的内容
o0000H 00000H 0l000H 01000H 64K程序 段寄存器 4K程序 段寄存器 0100H 21000 64K数据 0100H 02000H DS 2100H 2K数据 0200H 4600H 02800H ES A0OOH 100H堆栈 46000H 6K堆栈 A0000H 6K附加数据 AOOOOH 64KB为一段 代码段范围:01000H-10FFFH
64K程序 64K数据 64K堆栈 00000H 01000H 21000H 46000H 64K附加数据 A0000H 0100H 2100H 4600H A000H 段寄存器 CS DS SS ES 4K程序 2K数据 100H堆栈 00000H 01000H 02000H A0000H 0100H 0200H 0280H 段寄存器 CS DS SS 02800H 64KB为一段 代码段范围:01000H~10FFFH
注意: 以8086CPU的 IBMPO系统中,存储器首尾地址的用途固定。 0000-003FFH共1K内存单元用于存放中断向量。 FFFF0H~ FFFFFH是存储器底部的16个单元。 系统加电复位时,会自动转到FFFF0H单元执行, 而在FFH处存放一条无条件转移指令,转向系统初始化 程序
注意: 以8086CPU的IBMPC系统中,存储器首尾地址的用途固定。 • 00000H~003FFH共1K内存单元用于存放中断向量。 • FFFF0H~FFFFFH是存储器底部的16个单元。 系统加电复位时,会自动转到FFFF0H单元执行, 而在FFFF0H处存放一条无条件转移指令,转向系统初始化 程序
3.48086/8088cU寻址方式及指令系统 、概述 程序语言简介 二、8086/8088的寻址方式 (一)操作数寻址方式 (二)程序转移地址的寻址方式 三、80386、80486、80586、 Pentium的寻址方式 四、80868088指令码格式 五、80868088指令系统
一、概述 程序语言简介 二、8086/8088的寻址方式 (一)操作数寻址方式 (二)程序转移地址的寻址方式 三、 80386、80486、80586、Pentium的寻址方式 四、8086/8088指令码格式 五、8086/8088指令系统 3.4 8086/8088CPU寻址方式及指令系统