微机原理与接口技术——关于存储器译码方式相关计算

本次主要介绍的是微机原理中全译码方式下地址范围的计算以及程序编写。
先介绍一个全译码方式下存储器SRAM扩展例子,
在这里插入图片描述
先简要讲解一下存储过程,在总线周期的T1时刻,8086总线上总线上出现地址信息,在T1快要结束时刻,ALE引脚产生下降沿脉冲,经过非门产生一个上升沿脉冲,此时刻地址信息被锁存入74273锁存器中,此后的T2~T4时刻ALE引脚变为无效,所以在一个总线周期中T1时刻后锁存器状态不在改变,T3时刻出现数据信息,由于ALE无效,所以数据信息通过总线存入62256 SRAM存储芯片中,BHE和A0控制奇偶体的选择。
在这里插入图片描述
在这里插入图片描述
由于选中的端口为Y1口,所以地址范围应该为:

在这里插入图片描述
所以起始地址为10000H。
汇编中程序编写就为:

CODE SEGMENT
	ASSUME CS:CODE
START:MOV AX,1000H
      MOV DS,AX
      。。。。。。

计算出来的地址值为10000H,为什么在汇编中起始地址为1000H呢?
这个问题当时我也想了很长时间,后来我发现咱们计算出的地址范围其实是实际物理地址,所以逻辑地址就是:物理地址除以10H-偏移地址。
所以段基地址就为1000H。
在举一个例子:
某8088 CPU系统的存储器连接如图,请分别写出1#和2#芯片的地址范围,并编写程序段使2#芯片的前100个字节内容均置为93H。
在这里插入图片描述
由于74LS138译码器选择的为Y1,和Y2端口,所以地址范围选择为:
片1:
在这里插入图片描述
由于地址线为A0~A12,所以:
在这里插入图片描述
所以,片1的地址范围为:C4000H~C5FFFH。
片2计算方法与片1相同,C2000H~C3FFFH。
程序编写:

CODE SEGMENT
	ASSUME CS:CODE
START:MOV AX,0C200H ;这地方要注意,数据不能以字母开头,前面需要记得加0
      MOV DS,AX  
      MOV BX,0
      MOV CX,100
      MOV DL,93H
      MOV BYTE PTR[BX],0
SIM: MOV [BX],DL
     INC BX
     LOOP SIM
ENDLESS:JMP ENDLESS
CODE ENDS
	END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值