微处理器与汇编语言.pptVIP

  • 6
  • 0
  • 约1.55万字
  • 约 76页
  • 2019-11-06 发布于广东
  • 举报
段的排列规则 每个段的首址(物理地址)必须能被 24 = 16整除,即物理地址的低4位为0。 段在内存的位置不受限制。 一个段的最大容量为64KB。 (2)物理地址的形成 物理地址 物理地址就是在1M字节的地址空间中的每一位存储单元,用一个唯一的20位二进制数所表示的地址。 物理地址的范围从十六进制的00000H到FFFFFH。CPU在与存储器进行数据交换时使用物理地址。 基址和偏移地址的范围都是从0000H到FFFFH。 逻辑地址 逻辑地址由两部分组成,即段的基址和偏移地址,分别用16位来表示,其中偏移地址是存储单元所在的位置到段基址的距离。 在程序中使用逻辑地址,而不是物理地址。 物理地址由BIU中的地址加法器产生。 16位地址偏移量 0000 16位段寄存器中的段基址 + 20位物理地址 物理地址的生成 物理地址(20位)= 段地址左移4位并补0 + 偏移量 BIU的地址加法器 CS,DS,SS,ES SP,BP,SI,DI,IP 送AD0~AD19 例:某指令所在的存储单元 代码段寄存器 CS=0C018H,左移4位 段内偏移量 IP=0FE7FH, 则当前存储单元的实际地址是0CFFFFH 0 0C018 0FE7FH CS: I P: + 0CFFFFH 存 储 器 0C0180 段首地址 0CFFFF 即 C0180H+FE7FH = CFFFFH 例如,实际地址01245H可以从两个不同的相互重叠的段中得到。其中一个段的基址是0123H,另一个段的基址是0124H。 段基址:0123H 偏移量:0015H 逻辑地址1 1230H 1240H 1245H 物理地址 段基址:0124H 偏移量:0005H 逻辑地址2 物理地址是唯一的,但同一个物理地址可以有多个逻辑地址。 (3)8086存储器的分体结构 存储器地址空间分配 FFFFFH 偶地址 存储体 512K*8bit A0= 0 FFFFEH 00003H 00002H 00001H 00000H 地址 内容 内容 地址 奇地址 存储体 512K*8bit BHE= 0 8086系统中,1MB的存储器空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB。 分体结构设计的 原因在于: 8086既可以对字节 也可对字进行存取 奇偶存储体与三总线及8086数据操作 不传送 1 1 偶数地址的低位字节 0 1 奇数地址的高位字节 1 0 高低两个字节 0 0 读/写的字节 A0 存储体与总线的连接 D7 ~D0 D15 ~D8 A0 A19 ~A1 DB AB BHE D7 ~D0 奇地址存储体 SEL A18 ~ A0 D7 ~D0 偶地址存储体 SEL A18 ~ A0 BHE和A0信号 由CPU根据所 寻址的地址自 动产生 BHE 举例:读存储器操作过程 例1:DS=1000时 A)读从偶地址 开始的字节 B)读从奇地址 开始的字节 (BHE=1,A0=0) (BHE=0,A0=1) 8086CPU访问存储器时,都是以字为单位进行, 并总是从偶地址开始。 举例:读存储器操作过程 例2:DS=0A000H时 C)读从偶地址开始的字 D)读从奇地 址开始的字 (BHE=0,A0=0) (BHE=1,A0=0) (BHE=0,A0=1) 信息存储规则:为高位字节存入高位地址,低位字节存入低位地址。 规则字和非规则字 地址 存储单元 例如: 从19H至1BH中存入的内容是: ABCDEF H EF CD AB 19H 1AH 1BH 右图所示的存储单元 字节和字的存取 TIP: 1、8086CPU访问存储器时,都是以字为单位进行, 并总是从偶地址开始; 2、程序员在存放(或分配)字或字节的数据时, 既可以从偶地址开始,也可从奇地址开始; 3、如何解决1、2的矛盾呢? 8086的这种存储结构引出存取数据的问题: 字的存取----规则字,非规则字 字节存取----位于奇地址还是偶地址 从奇数地址开始存放字叫非规则存放,这样存放的字称为非规则字 从偶地址开始的存放叫规则存放,这样的字也叫规则字 规则字和非规则字的定义 EF 38 76 0358H 0359H 0357H 0356H 05 规则字 规则字 非规则字 规则字和非规则字:存放的起始地址不同;进而使得存取次数不同! 在执行字的传输指令时,若被存取的是一规则字,则BIU只要执行一个总线周期就可完成存取。 若为非规则字 , 则要执行两个总线周期 ,第一个总线周期存取低位字节, 第二个周期存取高位字节。 字的

文档评论(0)

1亿VIP精品文档

相关文档