二、存储器组织结构8086/8088有20根地址线,可寻址1MB空间的内存,当程序运行时,程序代码,数据等被编译程序按照一定的规则放在内存中
…………程序CPU内存第一页,共五十一页
1存储器的分段第二页,共五十一页
内存中通常存放三种信息:代码(指令):计算机执行何种操作数据(字符、数值):程序处理的对象堆栈信息:保存返回地址和中间结果为清晰起见,这三类信息通常分别存放在各自的区域内(存储系统中的不同存储段)第三页,共五十一页
存储器组织与分段分段技术就是把1MB空间分成若干逻辑段,每个逻辑段的容量≤64KB
为什么要分段
0段000000FFFF100001FFFFF0000FFFFF1段…15段64KB64KB64KB第四页,共五十一页
…逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点……逻辑段1≤64KB逻辑段2≤64KB逻辑段3≤64KB逻辑段4≤64KB00000FFFFF分段管理的特点:每段容量不超过64K字节;允许各个逻辑段在整个存储空间中浮动;段和段之间可以连续,也可以分开或重叠
01:025第五页,共五十一页
代码段(CODE):存放CPU可以运行的指令,程序代码;数据段(DATA):存放程序中定义的变量等数据;堆栈段(STACK):在程序调用时存放调用处的地址、寄存器的内容、调用的参数等,在调用完后对寄存器进行恢复;存放一些临时保存的数据;附加数据段(EXTRA):与数据段配合使用,使编程更加灵活
每个段的起始地址的有关值存放在称为段寄存器的4个16位寄存器中第六页,共五十一页
…………码段堆栈段数据段附加数据段…………码段1堆栈段数据段码段2每段的长度均小于64KB,即16位寄存器能表示的最大范围
第七页,共五十一页
段内的“偏移地址”指出从段地址开始的偏移位置,可以放在IP,或16位通用寄存器
偏移地址,逻辑地址,物理地址第九页,共五