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

Oprah ·
更新时间:2024-11-13
· 804 次阅读

本次主要介绍的是微机原理中全译码方式下地址范围的计算以及程序编写。
先介绍一个全译码方式下存储器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
作者:流行的云~



微机原理 微机 存储器 存储 接口

需要 登录 后方可回复, 如果你还没有账号请 注册新账号