二、存储器组织结构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位通用寄存器。偏移地址,逻辑地址,物理地址第九页,共五十一页。逻辑地址:用程序或者指令表示的一种地址,存储器的任一个逻辑地址是由段基址和偏移地址组成,都是无符号的16位二进制数,程序设计时采用逻辑地址。物理地址:存储器的绝对地址,从00000H-FFFFFH,是CPU访问存储器的实际寻址地址。偏移地址,逻辑地址,物理地址第十页,共五十一页。内存空间的唯一地址(20位)称为物理地址是由两部分组成的:段地址×16+偏移地址段地址16位偏移地址0000XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+20位物理地址第十一页,共五十一页。地址生成器CS左移4位20位+地址加法器CS16位物理地址20位IP或偏移地址第十二页,共五十一页。例如:段地址:21ABH偏移地址:1678H物理地址:21AB01678+2312823128H每一个逻辑段中,段地址是由计算机编译系统分配的,在这个逻辑段中不能改变,而偏移地址从0000H开始,最长到FFFFH,所以一个逻辑段的长度不能超过64KB。第十三页,共五十一页。例:某代码段的段地址为21ABH,该逻辑段的最大地址范围多少?第十四页,共五十一页。…………码段堆栈段数据段附加数据段物理地址:XXXX0H其中:XXXX为段地址…………000200010000……偏移地址从0000H起段地址与偏移地址用两个寄存器分别存放,在同一逻辑段寻址时只对偏移地址进行变动即可。第十五页,共五十一页。在8086/8088系统中,每个存储单元都有物理地址和逻辑地址两种地址表示。逻辑地址:段基值+偏移量表示方法:段基值:偏移量例如,3267H:00A0H第十六页,共五十一页。∑CSDSSSES内部暂存器输入/输出控制电路指令队列IP外部总线16位20位地址加法器BIU段地址寄存器段地址寄存器:分别存放正在处理的相应段的基地址。CS:CODE代码段DS:DATA数据段SS:STACK堆栈段ES:EXTRA附加段段地址寄存器的内容左移4位,与相应段的偏移地址相加,形成20位的物理地址。第十七页,共五十一页。逻辑地址来源访问存储器的操作类型不同,BIU所使用的逻辑地址来源也不同操作类型隐含段地址替换段地址偏移地址取指令CS无IP堆栈操作SS无SPBP为间址SSCS、DS、ES有效地址EA存取变量DSCS、SS、ES有效地址EA源字符串DSCS、SS、ESSI目标字符串ES无DI01:0218第十八页,共五十一页。IPCSSI,DI或BXDSSP或BPSS代码段数据段堆栈段取指令(IP)堆栈操作(SP)读/写存储器操作数或访问变量字符串寻址(源操作数放在DS:SI中,目标操...