8086 奇偶分体与边界对齐

1 为什么需要奇偶分体

  1. 8086 数据类型分俩种,字(16 bit)类型和字节(8 bit)类型
  2. 有时要读字类型,有时又要读字节类型
  3. 为什么需要字类型呢?因为需要对以前的老处理器(8 bit 寄存器)做向下兼容

2 如何实现奇偶分体

  1. 将一块存储体,平分为两个部分,每个部分 8 bit 的宽度,一部分全是奇数地址,另外一部分全是偶数地址
  2. 偶存储体同 8086 的低 8 位数据总线相连,奇存储体同 8086的高 8 位数据线相连
  3. 字类型的数据需要连续读取两个 8 bit 存储单元,必然存储单元地址一个是奇数,另一个是偶数
  4. 使用字节类型时,只需要读取一个 8 bit 存储单元,所以存储单元地址可以是奇数,也可以是偶数
    在这里插入图片描述
BHE*A0传送的数据指令举例
00两个连续的字节MOV AX, [2002H]
01奇地址的字节MOV AL, [2002H]
10偶地址的字节MOV AH, [2002H]
11不传送

3 边界对齐问题

  1. 当读取数据时,我们希望在 一个周期 内读取到所有数据,如果只是使用奇偶分体还是做不到的

  2. 如果不对齐,如下图,当读取第一个字节数据时可以一个周期内读到,但读取字数据时就需要两个周期了
    在这里插入图片描述

       ORG 0012H
       D1 DB 28H
       D2 DW 8888H
    
  3. 所以我们需要将不足一个字长的数据,补充为一个字长
    在这里插入图片描述

       ORG 0012H
       D1 DB 28H
       ORG $+1     ; 也可以用 EVEN 和 ALIGN 2
       D2 DW 8888H
    
  4. 高级语言都会对自动帮你优化成边界对齐,如果是使用汇编,需要你人为干预

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值