存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。有了存储器,计算机才有记忆功能,才能保证正常工作。按存储介质分可分为半导体存储器和磁表面存储器。按存储器的读写功能分可分为只读存储器(ROM)和随机读写存储器(RAM)。

只读存储器ROM是一种对其内容只能读,不能写的存储器。随着半导体技术的发展,只读存储器也根据不同需要设计出不同的种类。其中电可擦除只读存储器(EEPROM)是一种可用电气方法在线擦除和再编程的只读存储器,它既有RAM可读可改写的特性,又有非易失性存储器ROM在掉电后仍能保持所存数据的优点。因此,EEPROM在单片机存储器扩展中可以作程序存储器,也可以用作数据存储器,基于EEPROM存储器的扩展设计有十分重要的意义。

建立一个信息检索系统,每个序号对应一个不同的信息。通过键盘输入不同的指令序号,在电脑屏幕上会输出想要得到的信息。当超出序号范围的时候,屏幕会显示错误。程序还附加一个进一步查询的子程序。在输出信息后,可以对该信息进行查寻,当输入信息与序号相对应的信息完全相同时,会在屏幕上显示NO字样,然后继续进行下一次的提示输入。

存储芯片的扩展包括位扩展、字扩展和字位同时扩展等三种情况。

1、位扩展

位扩展是指存储芯片的字(单元)数满足要求而位数不够,需对每个存储单元的位数进行扩展。

例: 用 1K &TImes; 4 的 2114 芯片构成 lK &TImes; 8 的存储器系统。

分析: 每个芯片的容量为 1K ,满足存储器系统的容量要求。但由于每个芯片只能提供 4 位数据,故需用 2 片这样的芯片,它们分别提供 4 位数据至系统的数据总线,以满足存储器系统的字长要求。

设计要点 :

(1) 将每个芯片的 10 位(1k=2^10)地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低 10 位。

(2) 数据线则按芯片编号连接,1 号芯片的 4 位数据线依次接至系统数据总线的 D0 -D3 , 2 号芯片的 4 位数据线依次接至系统数据总线的 D4 -D7 。

(3) 两个芯片的 端并在一起后接至系统控制总线的存储器写信号(如 CPU 为 8086/8088,也可由 和 /M 或 IO / 组合来承担)

(4) 引脚分别并联后接至地址译码器的输出,而地址译码器的输入则由系统地址总线的高位来承担。 当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。。

2 、字扩充

字扩展用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展。

例 : 用 2K &TImes; 8 的 2716 A存储器芯片组成 8K &TImes; 8 的存储器系统

分析:

由于每个芯片的字长为 8 位,故满足存储器系统的字长要求。但由于每个芯片只能提供 2K 个存储单元,故需用 4 片这样的芯片,以满足存储器系统的容量要求。

设计要点 : 同位扩充方式相似。

(1) 先将每个芯片的 11(2* 2^10) 位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低 11 位。

(2) 将每个芯片的 8 位数据线依次接至系统数据总线的 D0 -D7 。

(3) 两个芯片的 端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),

(4) 它们的 引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。 当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输出。

3 、同时进行位扩充与字扩充

存储器芯片的字长和容量均不符合存储器系统的要求,需要用多片这样的芯片同时进行位扩充和字扩充,以满足系统的要求。

例 : 用 1K × 4 的 2114 芯片组成 2K × 8 的存储器系统

分析: 由于芯片的字长为 4 位,因此首先需用采用位扩充的方法,用两片芯片组成 1K × 8 的存储器。再采用字扩充的方法来扩充容量,使用两组经过上述位扩充的芯片组来完成。

设计要点 : 每个芯片的 10 根地址信号引脚宜接接至系统地址总线的低 10 位,每组两个芯片的 4 位数据线分别接至系统数据总线的高 / 低四位。地址码的 A 10 、 A 11 经译码后的输出,分别作为两组芯片的片选信号,每个芯片的 控制端直接接到 CPU 的读 / 写控制端上,以实现对存储器的读 / 写控制。

当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片组,低位地址码则同时到达每一个芯片组,选中它们的相应单元。在读 / 写信号的作用下,选中芯片组的数据被读出,送上系统数据总线,产生一个字节的输出,或者将来自数据总线上的字节数据写入芯片组。

尝试编写了一个简单程序。为与最后的程序作比较,将此程序列出,如下:

DATA SEGMENT

n0 db ‘0000000000000000000000000000000000000000’

n1 db‘1111111111111111111111111111111111111111’

n2 db ‘2222222222222222222222222222222222222222’

n3 db ‘3333333333333333333333333333333333333333’

n4 db ‘4444444444444444444444444444444444444444’

n5 db ‘5555555555555555555555555555555555555555’

n6 db‘6666666666666666666666666666666666666666’

n7 db ‘777’

n8 db ‘888’

Errmsg DB ‘No! Input 0-8! Q or q , Exit $’ ;输出错误信息 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA ;段属性说明

START:

MOV AX,DATA ;初始化DS

MOV DS,AX LOP:

MOV AH,01H ;输入一个数字

INT 21H

CMP AL,‘Q’ ;判断是否输入字符与Q相等,相等跳到EXIT退出

JZ EXIT

CMP AL,‘q’ ;判断是否输入字符与q相等,相等跳到EXIT退出

JZ EXIT

CMP AL,‘0’ ;输入不在0-8范围则退出

JB ERR ;小于0跳转

CMP AL,‘8’

JA ERR ;大于8跳转

SUB AL,30H ;计算字符串的地址

MOV DH,28H ;28H=40

MUL DH

MOV BX,AX ;数据放入BX

CALL DISP

JMP LOP ;输出错误信息后,继续输入序号

ERR:

MOV DL,0DH ;输出提示错误语句

MOV AH,02

INT 21H

MOV DX,OFFSET Errmsg

MOV AH,9

INT 21H

MOV DL,0DH ;回车和换行

MOV AH,02

INT 21H

JMP LOP ;返回LOP继续输入序号

EXIT:

MOV AH,4CH ;返回DOS

INT 21

DISP PROC NEAR

MOV DL,0DH ;回车换行

MOV AH,02

INT 21H

MOV DL,0AH ;多字符输入

MOV AH,02

INT 21H

MOV CX,28H ;28H=40 控制循环次数即输出的信息字符个数

LOP1:

MOV DL,[BX] ;循环输出字符串

MOV AH,02H

INT 21H

INC BX ;BX打印字符

LOOP LOP1

MOV DL,0DH

MOV AH,02

INT 21H

MOV DL,0AH

MOV AH,02

INT 21H

RET

DISP ENDP

CODE ENDS

END START ;源程序结束

调试结果如图所示:

出现的问题有:

问题1:开始输入序号时,只能显示在屏幕的第一个空间。

问题2:在输出没有写满40个字符的字符串时,输出是乱码。

问题3:按Q或q退出时,还会显示一串数字再退出。

程序二

在程序一调试的基础上,检查程序发现一些问题,在输入不是Q或q或0至8的数字时,没有写输出显示字符的程序;输入是应该是字符串,因为有回车。在此基础上,继续改善设计的程序,设计出程序二,即最终程序。

输入一个序号,首先判断是否是Q或q。如果是,则直接跳出,结束程序。如果不是,就在已设定好的信息库中检索相应信息,并将信息显示在屏幕上,紧接着跳入下一次序号输入界面。如果没有相应的序号所对应的信息,即超出序号范围会自动报错,并跳到下一次序号输入界面。

主体部分程序如下:

BEGIN:

CALL CRLF ;回车换行

LEA DX,MSG ;输出提示语句Please input a number: MOV AH,09H INT 21H

MOV AH,1 ;输入序号 INT 21H

CMP AL,‘Q’ ;判断为„Q‟退出 JE EXIT

CMP AL,‘q’ ;判断为„q‟退出 JE EXIT

SUB AL,‘0’ ;小于0跳转ERROR

JB ERROR

CMP AL,8 ;大于9跳转ERROR JA ERROR

MOV BX,OFFSET MSG0 ;取第一个字符串的首地址 MUL FORTY

ADD BX,AX ;找到相应字符串的地址 CALL DISPLAY ;调用DISPLAY子程序

定义ERROR程序:提示错误,重新要求输入序号,再次检测。

ERROR:

CALL CRLF ;回车换行

LEA DX,ERRMSG ;提示错误语句 MOV AH,09H INT 21H CALL CRLF

JMP BEGIN ;返回BEGIN程序

定义显示信息程序:将字符信息一个个输出。

DISPLAY PROC NEAR CALL CRLF

LEA DX,MSG9 ;提示语The message is: MOV AH,09H INT 21H

MOV CX,40 ;设置循环次数

DISP1:

MOV DL,[BX] ;输出字符串 MOV AH,2 INT 21H INC BX LOOP DISP1 CALL CRLF JMP BEGIN CALL CRLF

RET ;返回程序

DISPLAY ENDP

调试过程主要由编辑、汇编、链接和执行等几个步骤组成。当编辑好汇编语言源程序后,将其保存为.ASM文件。再调用汇编程序对源程序进行翻译,生成.OBJ的目标文件。在汇编过程中,源程序有错误则不能生成目标文件,经过多次修改最终生成无错误目标文件。之后,调用链接程序(LINK)将用户目标程序和库文件进行链接、定位,生成.EXE可执行文件。如果刚开始可执行程序运行之后没有得到预想的结果,又要重新检查源程序的算法错误,重新编辑、汇编、链接和执行,最终得到预期的结果。

经过多次调试、修改、测试结果,最后基本符合要求。 调试最终结果如图

微型计算机原理存储器,微机原理存储器扩展详情解析相关推荐

  1. 微型计算机三大主线,微机原理第1章微型计算机系统基本组成原理 2011.ppt

    微机原理第1章微型计算机系统基本组成原理 2011 课程介绍 课程在计算机课程体系中的位置 课程教学目的 课程要求 课程学习方法 课程内容组织 课程考核要求 课程内容组织 第1章微型计算机系统基本组成 ...

  2. 微型计算机原理实验,微机原理实验总结(共5篇)

    微机原理实验总结 不知不觉,微机原理与接口技术实验课程已经结束了.回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很 ...

  3. 微型计算机电路试卷,微机原理试卷及答案2

    填空题: 1. 从功能上分,8086CPU由_______和_______两部分组成 执行部分EU,总线接口部分BIU 2. 8086CPU采用_______和_______两级存储器寻址方式 段地址 ...

  4. 微型计算机的难点,微机原理及应用重点难点.PDF

    微机原理及应用重点难点 微机原理及应用重点难点 第1章 微型计算机概述 本章重点介绍微型计算机的发展历程.微型计算机系统的组成,回顾计算机 的数据格式.难点在于对微型计算机系统结构的充分理解和数据格式 ...

  5. 微型计算机sp作用,微机原理及应用A-中国大学mooc-题库零氪

    第一周 微型计算机基础概论(第1章) 作业 1.1 2 3 4 5 6 7 8 9 10 作业1 1.1 2 3 4 5 6 7 8 9 10 第二周 微处理器与总线(第2章) 第2章作业 1.若DS ...

  6. 微型计算机 周明德,微机原理(周明德)课后题答案

    微机原理(周明德)课后题答案 清华版的 第1章 作 业 答 案 1.1 微处理器.微型计算机和微型计算机系统三者之间有什么不同? 解: 把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即 ...

  7. 微型计算机原理作业,微机原理作业习题集

    微机原理作业习题集:习题一 1. 简述冯·诺依曼计算机结构的基本含义.电子计算机与以往的计算工具所不同的基 本特征是什么? 2. 电子计算机包括哪几个主要部分?各部分的基本功能是什么? 3. 微型计算 ...

  8. 南邮微型计算机,南邮 微机原理(微型计算机与接口技术)复习ASM含部分答案.ppt...

    <南邮 微机原理(微型计算机与接口技术)复习ASM含部分答案.ppt>由会员分享,可在线阅读,更多相关<南邮 微机原理(微型计算机与接口技术)复习ASM含部分答案.ppt(23页珍藏 ...

  9. 中北大学微型计算机原理,中北大学 微机原理习题及其答案

    中北大学微机原理及接口技术习题及练习册 6. 判断下列指令是否正确 (1) JMP (2) IN (3) MOV (4) SHL BX AL,DX DS,AX AX,2 ( ( ( ( ( ( ( ( ...

最新文章

  1. 基于Oracle11gR2 GRID的单实例库备份恢复
  2. 陈鑫136201010502
  3. JavaScript高级day01-AM【WebStrom安装、数据类型分类及判断、数据-内存-变量、引用变量赋值、对象的组成】
  4. SQLServer中round函数
  5. 最全三大框架整合(使用映射)——struts.xml和web.xml配置
  6. 《C语言深度解剖》学习笔记之内存管理
  7. 常见的SQL笔试题和面试题:SQL经典50题
  8. 用Nginx作反向代理简单多了
  9. 开发管理 -启动项目(转)
  10. 第四章(数组) 编程题 1
  11. 新书介绍:CCNA基础教程
  12. 中国移动MM,你需要了解
  13. 浅谈被动式IAST产品与技术实现
  14. 国庆征文获奖名单公布
  15. 为什么转置一个512x512的矩阵,会比513x513的矩阵慢很多?
  16. java计算机毕业设计基于安卓Android/微信小程序的游泳馆管理系统APP
  17. altc财金网为你分享币圈波段操作技巧
  18. python短时傅里叶变换_10-05:Python实现时间抽取基2快速傅里叶变换
  19. SwiftUI之深入解析如何使用组合矩形GeometryReader创建条形(柱状)图
  20. 使用Unity来实现全民K歌唱歌,耳返效果和混响功能

热门文章

  1. DIY 智能家居语音助理 —— 语音控制万物
  2. php filter_sanitize_number_int,php – 我正确使用FILTER_VALIDATE_INT FILTER_SANITIZE_NUMBER_INT吗?...
  3. 利用talib构造股票因子,并利用数据挖掘算法进行因子筛选
  4. 10大开源的Web应用防火墙介绍
  5. ppt模板最后一页写什么?
  6. 如何用python画人像_如何用Python画曼德勃罗集
  7. Process Lasso 介绍
  8. 浅谈人工智能(`AI`)基础知识
  9. vue项目web前端登录页数字验证码 登录流程
  10. 最全Cisco 3560交换机使用手册