首页 > 其他分享 >微机原理静态存储器扩展设计

微机原理静态存储器扩展设计

时间:2024-08-01 21:25:18浏览次数:18  
标签:静态 存储器 MOV SI START 微机 实验 AX

一、实验目的

1. 能够选择存储器芯片进行硬件设计。

2. 能够编制自检程序进行测试验证。

3. 培养系统设计的全局思维。

二、实验内容

按照规则字写存储器,编写实验程序,将0000H~000FH共16个数写入SRAM的从0000H起始的一段空间中,然后通过系统命令查看该存储空间,检测写入数据是否正确。

本系统采用准32位CPU,具有16位外部数据总线,即DO、D1、…、D15,地址总线为BHE#(#表示该信号低电平有效)、BLE#、A1、A2、…、A20。存储器分为奇体和假体,分别由字节允许线BHE#和BLE#选通。

存储器中,从偶地址开始存放的字称为规则字,从奇地址开始存放的字称为非规则字。处理器访问规则字只需要一个时钟周期,BHE#和BLE#同时有效,从而同时选通存储器奇体和偶体。处理器访问非规则字却需要两个时钟周期,第一个时钟周期BHE#有效,访问奇字节;第二个时钟周期BLE#有效,访问偶字节。处理器访问字节只需要一个时钟周期,视其存放单元为奇或偶,而BHE#或BLE#有效,从而选通奇体或偶体。写规则字和非规则字的简单时序图如图 1所示。

图 1 写规则字(左)和非规则字(右)简单时序图

实验单元电路图如图2所示。

图 2 SRAM单元电路图

三、实验步骤

1. 实验接线图如图所示,按图接线。

2. 编写实验程序,经编译、链接无误后装入系统。

3. 先运行程序,待程序运行停止。

4. 通过D命令查看写入存储器中的数据:

D8000:0000  回车,即可看到存储器中的数据,应为0000、0001、0002、…、000F共16个字。

四、实验程序

1、内容程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,8000H

        MOV DS,AX

AA0:    MOV SI,0000H

        MOV CX,0010H

        MOV AX,0000H

AA1:    MOV [SI],AX

        INC AX

        INC SI

        INC SI

        LOOP AA1

        MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

2、思考题1程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,9000H

        MOV DS,AX

AA0:    MOV SI,0001H

        MOV CX,0010H

        MOV AX,0000H

AA1:    MOV [SI],AX

        INC AX

        INC SI

        INC SI

        LOOP AA1

        MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

3、思考题2程序:

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

START:  PROC FAR

ASSUME CS:CODE,SS:SSTACK

        MOV AX,8000H

        MOV DS,AX

AA0:    MOV SI,0000H

        MOV CX,16*1024

        MOV AL,55H

AA1:    MOV [SI],AL

        MOV BL,[SI]

        CMP BL,AL

        JNE ERROR

        INC SI

        LOOP AA1

        MOV SI,4000H

        MOV CX,16*1024

        MOV AL,0AAH

AA2:    MOV [SI],AL

        MOV BL,[SI]

        CMP BL,AL

        JNE ERROR

        INC SI

        LOOP AA2

        JMP AA3

ERROR:  MOV DX,2000H

AA3:    MOV AX,4C00H

        INT 21H

START   ENDP

CODE    ENDS

        END START

五、实验结果

如下图3所示,查看写入存储器中的数据,可以看到存储器中的数据,为0000、0001、0002、…、000F共16个字。可见各个数被存放址单元中。

图 3 按规则字写存储器

六、思考题

1. 修改起始地址,按非规则字写存储器,观察实验结果。

程序见上四实验程序2思考题1程序。为了不覆盖第一次实验结果,我们将存储扩展空间段地址改为9000H,然后给SI寄存器赋奇地址数,MOV SI, OO01H即为非规则字写存储器。实验结果如下图4所示。可见各个数被存放在奇地址单元中。

图 4

2.修改片选线为MY1,按字节方式写存储器,分别输入55H和0AAH,编写自检程序,观察实验现象

    程序见上四实验程序3思考题2程序,通过AL写入55H和0AAH,读入数据存放BL,并将AL和BL进行比较,实验结果如下图5,图6所示。

图 5

图 6

   如图5所示,当RAM正常工作时,写入的数据与读出数据一致,DX寄存器不显示2000H,表明没有出错报警提示。

  如图6所示,当改变CPU的连线时,RAM不能正常工作,DX寄存器显示2000H,出现了出错报警提示。

七、实验心得

    通过本次静态存储器扩展设计实验,我认识了SRAM单元电路图,然后也对存储器硬件结构有了更深入的了解,包括地址线、数据线、控制线的作用及连接方式,不仅深化了对微机原理和SRAM工作原理的理解,还锻炼了硬件电路设计和调试的能力。静态存储器扩展设计不仅是一个电子设计的实际案例,更是一个系统性工程的实践,涉及到硬件设计、软件编写和综合调试的多个环节。通过面对和解决实验过程中出现的问题,积累了不少宝贵的经验。

标签:静态,存储器,MOV,SI,START,微机,实验,AX
From: https://blog.csdn.net/qq_62665087/article/details/140857676

相关文章

  • 微机原理循环程序设计实验
    实验目的1.能够认知循环指令和循环结构。2.能够设计循环程序,并运行调试。3.培养严谨、求真的科学作风。 实验内容计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。编写实验程序,计算上式的结果。 求某数据区内负数的个数设数据区的第一单元存放区内单元数据的......
  • 【nginx网站部署】【nginx部署网站】【linux-nginx】静态页面部署 静态网站部署 nginx
    ============================================第一步:安装:===============================1、安装:sudoapt-getinstallnginx 输入y2、测试是否成功: sudonginx-t 输出: nginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisok nginx:config......
  • Python 自动创建阿里云 OSS 桶并配置静态网站托管
    在本文中,我们将介绍如何使用Python和阿里云OSSSDK自动创建OSS桶(如果不存在),并为新创建的桶配置静态网站托管。这对于自动化部署和管理静态网站非常有用。前提条件安装阿里云OSSSDK:pipinstalloss2准备好阿里云OSS的访问密钥(AccessKeyID和AccessKeySecret......
  • Ubuntu修改默认网关,以及配置静态ip
    使用Netplan配置(适用于Ubuntu18.04及以上版本)使用ifconfig查看网络,找到192开头的ip的网口,例如我的电脑是:ens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.1.100netmask255.255.255.0broadcast192.168.1.255记住这个ens33网卡名称N......
  • 02.计算器存储器的原理
    02.计算器存储器的原理目录介绍01.什么是存储器1.1了解存储器是什么1.2存储器类型02.存储器系统设计2.1存储器分层设计2.2存储器层次结构2.3高速缓存设计思想2.4虚拟内存访问内存03.存储器类型3.1按照材质划分3.2按芯片类型划分3.3内存vsCPU3.4......
  • Django模板、模版语言和静态文件
    1.templates模板(html)在app目录下创建一个templates目录,用于存放网页模板利用url返回网页点击查看代码defuser_list(request):returnrender(request,"user_list.html");输入url地址时,会去app目录下的templates目录下寻找名为user_list的HTML文件(根据app注册顺......
  • VMWare设置桥接模式,CentOS7设置静态IP
    1、在VMWare中给虚拟机设置为桥接模式,如下图: 2、设置CentOS7静态IP(1)进入网络配置文件目录,命令如下:cd/etc/sysconfig/network-scripts/(2)查看网络配置文件(3)打开网络配置文件,命令如下:vimifcfg-ens33(4)参考以下对配置文件进行修改DEVICE=ens33#虚拟机网卡名......
  • 静态方法动态方法
    静态方法属于类:静态方法属于类本身,而不是类的实例。调用方式:可以通过类名直接调用,无需创建类的实例。访问限制:不能直接访问类的非静态成员(包括变量和方法),因为它们需要与类的实例关联。内存使用:静态方法在类加载时加载到内存中,所有实例共享同一方法。常用场景:用于工具类或实......
  • 静态顺序表
    顺序表顺序表和链表都是线性表的一种,此处介绍顺序表数据的存储结构有分为逻辑存储结构和物理存储结构。顺序表和链表(之后的文章会详解)实际上都是线性表,是因为他们的逻辑存储关系都是线性的,只是因为在计算机内存中存储的方式(物理存储结构)不同。两种物理存储结构各有......
  • PIL 和 python 静态类型
    我有一个函数参数,它可以接受图像的多种类型:defsomefunc(img:Union[np.array,Image,Path,str]):PILImage在这种情况下抛出以下异常:TypeError:Union[arg,...]:eachargmustbeatype.Got<module'PIL.Image'from...进一步检查图像对象后这才有......