文档详情

微机原理与接口技术课件4.ppt

发布:2017-06-30约小于1千字共10页下载文档
文本预览下载声明
PC机的编程结构 内存分段 存在的问题: 8086CPU的地址总线宽度为20位,但8086的字长为16位,寄存器宽度也是16位,地址在CPU中如何存储?如何实现对地址的计算? PC机的编程结构 内存分段 解决的办法: 对存储器实行逻辑上的分段,分别对每个段进行读写。 注意:这种分段只是逻辑上的划分,并不是真正把存储器从物理上分开。 PC机的编程结构 物理地址与逻辑地址 物理地址: 出现在地址总线的20位地址信号 逻辑地址: 在程序中用于地址存储和计算的数据,由段基址和段内偏移量2个部分构成 PC机的编程结构 内存分段 分段方案: 一个20位的物理地址对应与2个16位的逻辑地址,分别称为:段基址和段内偏移量 存放于段基址寄存器 PC机的编程结构 段内偏移量 段内偏移量宽度为16位,因此一个段最长为64K,它仅仅描述了所要寻址的目标单元距离与段首地址的偏移量 PC机的编程结构 段基址 段基址描述了一个逻辑段的起始地址,段基址也用16位二进制数存储和运算 PC机的编程结构 逻辑地址的表述 一个逻辑地址由段基址和段内偏移量两部分构成,一般表示为 : 段基址:段内偏移量 PC机的编程结构 逻辑地址向物理地址的转换 转换公式为: 物理地址 = 段基址 x 16 + 段内偏移量 也可表述为:段基址左移4位 + 段内偏移 PC机的编程结构 段寄存器 专门用于存放段基址的寄存器称为段寄存器,8086有4个段寄存器,分别为: CS:代码段段基址寄存器,程序存储器的段首地址必须存放在该寄存器中,代码段的段内偏移量存放于IP寄存器中,CS:IP所对应的单元为下一条取指令的地址,IP在取指完成后自动加1 PC机的编程结构 段寄存器 DS:数据段段首地址所对应的段基址 ES:附加段段基址,该段是数据段的补充 SS:堆栈段,专门用于访问堆栈时,所需要 的段基址
显示全部
相似文档