2012计算机组成原理实验指导书xues

上传人:fgh****35 文档编号:180446299 上传时间:2023-01-06 格式:DOC 页数:75 大小:3.01MB
收藏 版权申诉 举报 下载
2012计算机组成原理实验指导书xues_第1页
第1页 / 共75页
2012计算机组成原理实验指导书xues_第2页
第2页 / 共75页
2012计算机组成原理实验指导书xues_第3页
第3页 / 共75页
资源描述:

《2012计算机组成原理实验指导书xues》由会员分享,可在线阅读,更多相关《2012计算机组成原理实验指导书xues(75页珍藏版)》请在装配图网上搜索。

1、 TEC-XP计算机组成原理与系统结构实验系统实验指导书 安阳工学院I目录第一章 TEC-XP计算机组成原理与系统结构实验系统概述-11.1 TEC-XP教学计算机系统系列和总体组成概述-11.2 TEC-XP教学计算机的指令系统设计-21.3 TEC-XP教学计算机的结构和组成设计-31.4 基本实验项目设置-31.5 其他实验项目-5第二章 实验指导-72.1 基础汇编语言程序设计-72.2 脱机运算器实验-162.3 组合逻辑控制器部件教学实验-182.4 存储器部件教学实验-272.5 I/O口扩展实验-312.6 中断实验-342.7 微程序控制器部件教学实验-40 2.7.1 技术

2、资料汇总-402.7.2 微程序控制器实验-472.8 BASIC语言程序设计-592.9 FPGA芯片实现非流水线的CPU系统-63第一章 TEC-XP计算机组成原理与系统结构实验系统概述1.1 TEC-XP教学计算机系统系列和总体组成概述TEC-XP是适用于计算机组成原理与系统结构的实验系统,主要用于计算机组成原理和计算机系统结构等课程的硬件教学实验,同时还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。它的功能设计和实现技术,都紧紧地围绕着对课程教学内容的覆盖程度和所能完成的教学实验项目的质量与水平来进行安排。其突出特点有二,一是硬、软件基本配置比较完整,

3、能覆盖相关课程主要教学内容,支持的教学实验项目多且水平高,文字与图纸资料相对齐全。二是既有用不同集成度的半导体器件实现的真实“硬件”计算机系统,同时还有在PC计算机上用软件实现的功能完全相同的教学计算机的“软件”模拟系统,其组成和实现的功能如下图1.1和图1.2所示。 软件:解释 BASIC 语言汇编语言支持监控程序硬件:运算器,控制器(多种实现:(微程序或硬布线控制器,中小规模器件或FPGA器件实现)主存储器,总线,接口输入设备,输出设备硬件与电路:逻辑器件和设备软件:解释 BASIC 语言汇编语言支持监控程序(指令)级模拟教学机模拟:运算器、控制器模拟(微程序级或硬布线控制器级模拟)主存储

4、器模拟,总线、接口模拟输入设备/ 输出设备模拟运行环境:PC机,Windows系统图1.1 硬件实现的实际计算机系统 图1.2 软件实现的模拟计算机系统从图1.1可以看到,该计算机硬件系统组成中,功能部件是完整齐备的,运算器、控制器、存储器、计算机总线、输入输出接口等配备齐全,还可以接通PC机仿真终端执行输入输出操作,同时实现了微程序方案的和硬布线方案的2种控制器。从CPU的具体设计和实现技术区分,既支持用中小集成度芯片实现CPU的方案,也支持选用高集成度的FPGA门阵列器件实现CPU的方案,体现了CPU系统设计的最新水平。从计算机组成原理课程教学实验的角度看,该计算机软件系统组成也是完整的,

5、支持简单的高级语言BASIC(包括浮点运算指令和基本函数运算功能),汇编语言(支持基本伪指令功能)和二进制的机器语言,配有自己的监控程序,以及PC机仿真终端程序等。毫无疑问,全部软件的源程序代码是宝贵的教学参考资料。从图1.2可以看到,软件实现的计算机指令级模拟系统,可以使实验人员脱离实际的教学计算机系统,在PC机上执行教学计算机软件系统的全部功能;微程序和硬连线这一级别的模拟软件,可以通过PC机屏幕查看在教学计算机内部数据、指令的流动过程,并显示每一步的运行结果,为设计、调试教学机新的软件或硬件功能提供重要的辅助作用。该系统还有控制器(微程序或硬连线方案)辅助设计软件,同学可以在PC机上使用

6、该软件直接设计该计算机的控制器,包括定义指令格式和编码,划分指令执行步骤和每一步的操作功能,确定控制器需要提供的全部控制信号等全部过程,最后会自动生成能装入教学计算机硬件系统中实际应用的最终结果文件。接下来还可以选用微程序级的模拟软件系统,或者硬布线控制器级的模拟软件系统,对经过辅助设计软件得到的设计结果进行模拟运行,计算机屏幕上会详细显示每一步的运行结果,做到尽早地发现问题。由于在执行上述的控制器设计和模拟运行的整个过程中,都是在PC机上完成的,脱离实际的教学机系统,工作更方便,效率更高,对节省学时、帮助同学加深对控制器组成、设计等方面的理解深度也有益处。1.2 TEC-XP教学计算机的指令

7、系统设计合理地确定一台计算机的指令系统,无论对计算机厂家还是对最终用户来说都是十分重要的事情,它密切关系到计算机设计与实现的复杂程度和生产成本,计算机使用的难易程度和运行效率。对主要用于教学和教学实验目的的计算机,特别是对于一台16位字长的教学计算机来说,确定其指令系统,更多地应关注它在教学过程中的作用和使用方法,至少应解决好以下几个问题。(1)指令格式和功能的典型性,即选择DLX指令集结构,适当靠拢RISC机的指令格式,做到尽可能小的指令集,简化的寻址方式。这样做不仅使教学计算机的结构简化,实现简单,易于实现指令流水。做到指令格式和功能有良好的典型性,同学更容易接受,讲课时更容易完整地讲解清

8、楚这套指令系统和控制器设计,也有利于教学内容的整体安排。(2)指令系统要有一定的完备程度,给出的指令格式适当规范,指令分类合理,指令执行步骤容易理解,符合人们通常的编程使用习惯。总之,有较好的易学易用性。确保选用这套指令系统,能方便地设计教学计算机的配套软件。 (3)更高的可扩充性,即为学生添加各种新的指令留下比较充足的余地,为此可以把完整的系统中指令划分为必备的(约30条)基本指令(设计者已经实现)和待扩展的(约20条)保留指令(留给学生设计实现)2大类;在扩展新的指令时,实现手段要适当简单,但要有比较多的设计内容和选择余地,以便更好地培养学生的创新意识和开创能力,有利于深化教学内容。(4)

9、符合教学计算机的特定要求。对16位字长的计算机,指令的操作码部分可以选择为固定长度;再结合我们所选用的运算器器件Am2901芯片内含16个通用寄存器的特点,寄存器寻址方式需要使用4位的形式地址。如果需要,还可以指定16个累加器中的几个为专用的寄存器,以便最大程度地简化教学机硬件组成,简化指令执行流程设计。遵照上述思路,最终确定了教学计算机的指令系统的具体组成和指令格式。指令格式如图1.3所示。从图中可以看到,指令中包括单字指令和双字指令,第一个指令字的高8位是指令操作码字段,低8位和双字指令的第二个指令字是操作数地址字段,分别有3种用法。8位 4位 4位操作码DRSRIO端口地址 / 相对偏移

10、量立即数 / 直接内存地址 / 变址偏移量图1.3 教学机的指令格式8位指令操作码(记作“IR15IR8”),各位的含义如下:IR15、IR14 用于区分指令组: 0表示A组,10表示B组,11表示C、D组;IR13 用于区分基本指令和扩展指令:0表示基本指令,1表示扩展指令;IR12 用于简化控制器的实现,暂定该位的值为0;IR11IR8 用于区分同一指令组中的不同指令(最多16条);IR11 还用于区分C、D组指令(每组最多8条):0表示C组,1表示D组。第一个指令字中的操作数地址字段可以给出:4位的通用寄存器编号(DR代表目的寄存器,SR代表源寄存器),8位的IO端口地址,8位的相对变址

11、偏移量。第二个指令字用于给出16位的立即数,16位的直接内存地址,或者16位的变址偏移量。1.3 TEC-XP教学计算机的结构和组成设计作为教学和教学实验使用的计算机,其结构和组成设计要比较好地体现出尽可能多的主要教学内容,包括功能部件划分清晰,设计合理,它们之间连接关系适当规范等。在选用中小规模集成度器件实现的CPU系统中,运算器部件设计选用了位片结构的4位长度的运算器芯片,内含功能比较合理的ALU,双端口控制读出、单端口控制写入的16个累加器,和完成乘除法运算的乘商寄存器等功能部件,从功能和组成两个方面都比较好地体现了运算器部件的教学内容。在控制器部件设计中,同时实现了微程序的和硬布线的两

12、种控制器,通过一个开关简单地完成两种控制器之间的切换。讲课过程中,以一种控制器方案为主,对控制器的组成与设计技术讲明讲透,再用少量学时顺便介绍另外一种控制器方案,有利于比较两种控制器的异同之处和各自的优缺点,可以取得事半功倍的教学效果。设计指令执行步骤时,对选用中小规模集成电路实现的控制器,为了突出基本原理和减少器件数量,指令被设计为串行执行,即下一条指令必须在当前指令完全结束后才能开始;在选用高集成度的现场可编程器件FPGA实现的CPU系统中,继承了原来的指令系统,既支持指令的串行执行,也可以选用指令流水线技术实现指令的并行执行,以支持真实的指令流水线的教学实验功能。在教学计算机存储器部件设

13、计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器系统,包括了唯读存储区(ROM,存放监控程序等)和随读写存储区(RAM)两部分,也可以实现指令和数据分开的两个存储体(只用于FPGA实现的带指令流水线的CPU系统)。适当改进后,可以支持存储器的多体交叉编址技术。在教学计算机总线部件设计中,实现了单总线结构,数据总线、地址总线和控制总线比较简单,保证教学机的正常运行并体现出总线设计的基本原理。关于计算机中的接口线路,教学计算机提供了2路串行接口(INTEL 8251),可以接入PC机作为教学计算机的仿真终端完成输入输出操作;作为扩展实验内容,也可以通过在一个40芯的器件插座上插上其他

14、标准接口线路(例如INTEL的8255、8253等)并适当接线,完成常用接口线路的输入输出操作。关于中断处理,支持3级的中断并允许中断嵌套,可以完成常规的中断处理能力,对中断优先级编码与排队,中断响应和现场切换等处理上特色很强。1.4 基本实验项目设置在本节提到的实验项目,多数是在TH-union系统中选用中小规模集成度器件实现的教学计算机上可以开设的实验,把选用FPGA芯片实现的CPU构建的教学机系统中支持的教学实验项目放在第3章介绍。基本实验是指学习计算机组成原理通常总要完成的实验项目,解决的是学习基本原理和培养基本能力的问题。1. 基础汇编程序设计学习使用系统已实现的29条指令和监控程序

15、、交叉汇编程序软件,设计与调试由教师布置的或自己设想的各种汇编程序。如有可能,可以参照系统提供的交叉汇编程序的源码,学习系统汇编程序(Assembler)的实现原理与设计技术。2. 运算器部件实验可以在运算器完全脱开主机控制的方式下,用主板上的微型开关直接控制运算器的方式来使用运算器并观察运算结果;也可以在实验计算机正常运行方式下,用控制器给出实验者所设计的对运算器的控制信号来使用运算器并观察运算结果(此时并不需要懂得控制器的运行原理)。可以观察并量测运算器在串行进位方式下的进位信号的波形和延迟时间,也可以测出该运算器所允许的最高工作频率。3. 主存储器部件的实验可以进行存储器工作波形的观察与

16、量测,可进行静态存储器的容量扩展实验,通过监控命令或自己设计的小程序向存储器写入数据并检查读写的正确性。4. 控制器部件实验可以做微程序方案或硬布线方案的控制器实验。首先是通过听课和操作实验机,学懂已实现的控制器的设计原理与实现技术,以单指令方式、单步骤执行方式观察指令的运行结果和信息在计算机内产生和传送的时间、空间关系,这是更重要的实验内容;然后才是设计与实现多条自己定义的新指令,并把新老指令放在同一程序中运行,检查结果的正确性。在微程序方案下实现新指令更容易,不用改动任何硬件,按规定办法把有关新指令用到的微程序装入控制存储器即可。在硬连线控制器方案中,则要把新指令用到的控制逻辑与原有的基本

17、指令的控制逻辑合并一起,经过编译之后再重新下载到可编程的MACH器件中,略显得复杂一点,可能要多次地改正错误才能得到最终的正确结果。5. 串行口输入/输出实验由于本机上已给出了两路串行接口,其中的一路的接线完全连接好,系统也已经执行了对接口芯片的初始化,可以直接用于输入输出操作;另外的一路的接线并未全部连通,要求实验人员看懂图纸并完成必要的连线操作和串行口的初始化操作后,方能用程序控制方式完成该串行接口的正常输入/输出操作,例如用两台实验机的这一路串行口完成双机双向通信等实验。作为更高要求,还可以增加少量硬件线路,实现在中断方式下完成输入/输出操作(需在讲过中断之后进行)。还可以观察与量测串行

18、数据的波形,起始位、停止位、串行数据采样时间的配合关系等。6. 并行口与并行口打印机驱动的实验可以在教学机的主板上设计并搭建诸如Intel 8255并行接口与配套逻辑电路,并用程序控制方式和中断方式驱动并行口打印机完成打印操作。在无打印机的情况下,可用并行口在程序控制方式下或中断方式下实现两台实验机的双机单向或双机双向通信,或在同一台实验机上实现内存内容搬移等实验。这涉及硬件与软件两个方面知识的综合应用。7. 中断及DMA实验串行口、并行口输入/输出操作中,都可以有中断方式下的输入输出方式,这需要适当地修改监控程序。这里也可以专门做多级中断、优先级排队及中断嵌套的实验。此时可用按钮等作为中断请

19、求信号来源,抛开相应设备入/出以强化中断处理本身的份量。DMA的工作方式,最简单的实验是在程序正常运行的同时,用DMA方式同时完成内存内容的搬移操作,结果的正确性便于检查。这个实验需用到扩展的通用接口芯片的插座,完成必要的连线,设计实验小程序软件等。8. 整机故障定位与排除实验实验机上有一些跳线夹,是用来人为设置机器故障的。教师可以通过移走一或几个跳线,或换上有故障的器件,要求学生发现故障,查清故障原因并设法排除。该实验有一定难度,但也是综合应用所学全部知识、完成能力训练的非常有效的手段,对提高分析问题与解决问题的能力会有很大帮助。此时需要确保设置的故障不会损坏教学计算机系统的硬件。1.5 其

20、他实验项目是指那些不一定是学习计算机组成原理课程必做的实验,或难度更大的实验项目。1. 故障诊断软件的设计与实现这可以在机器指令级或微体系结构级进行。机器指令级的诊断程序用以疹断指令与监控程序运行的正确性,是机器出厂前例行实验的一部分,也是实验指导教师把实验机交付学生使用之前判断机器好坏的简便手段。可以让学生试着设计。微体系结构级的诊断,设计得好的话,可用来实现实验机的故障诊断,非常有用,对于透彻掌握实验机的组成与运行机制帮助巨大,但在教学机中实现起来有相当的难度。2. 用一台正确运行的实验机辅助调试另一台实验机在本实验机的实现过程中,已考虑到这类实验的需求。可以把同一时钟同时提供给两台实验机

21、,使其完全同步运行,并比较检查两台实验机内部主要信号、运行状态及结果的一致性,并依此结果判断是否继续给出后续时钟,则很容易找到待调试计算机的出错位置。与此类似的是双机同步运行,是检查机器可靠性的一条捷径。3. 实验机的监控程序、交叉汇编程序的修改与扩充功能的实验。4. 扩充输入/输出接口、设备与驱动程序的实验。5. 设计与实现一套全新指令系统的CPU。指令格式可以突破现在规定,寻址方式也可变化,以16位字长的一字或多字指令为宜。微指令格式可变,但字长在56位以下最方便。运算器也可适当变动,用Am2901实现其他型号的运算器功能,或用可编程器件设计一个新的运算器均可行。例如,在这个硬件主板上设计

22、并实现一个全新的8位字长的计算机系统,指令格式、寻址方式、监控程序等全部软件有关的内容完全重新设计,运算器、控制器、存储器、总线和接口等硬件也完全重新设计,这是完全可行的,工作量是大一些,但可学内容更丰富。对大部分院校来说,这作为学习过计算机组成原理课程之后的一个大的课程设计、甚至于是毕业设计的题目可能更合适一些。6. 软盘驱动器的接口与驱动线路实验设计与实现软盘驱动器的接口与驱动线路,是综合应用有关软件与硬件知识的途经之一,可以在教学实验计算机现有功能的基础上,增加新的设备和操作功能,在更大程度上拓展其实验性能。7. 使用现场可编程器件(GAL20V8和MACH)完成组合逻辑的或者时序逻辑的

23、线路实验,对于在学习本课程之前尚未学习过数字电路与逻辑设计课程的学生是必要的。8. 通过使用第2路串行接口和修改监控程序,实现2个用户同时操作同一台教学计算机的多用户系统的功能。以上提出的只是教学计算机系统可以支持(能够实现)的、可以开设的实验项目的思路与可行性,至于更具体地安排哪一些教学实验项目,实验的具体目标、内容、要求等将在下一节中分别详细说明,最终还是应该依据各个单位的教学安排和总体目标由任课教师来具体选择落实。 第二章 实验指导2.1 基础汇编语言程序设计实验目的:1 学习和了解TEC-XP教学实验系统监控命令的用法;2 学习和了解TEC-XP教学实验系统的指令系统;3 学习简单的T

24、EC-XP教学实验系统汇编程序设计;实验内容:1 学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC.2 使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;3 使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;实验要求在使用该教学机之前,应先熟悉教学机的各个组成部分,及其使用方法。实验步骤 一实验具体操作步骤:1 准备一台串口工作良好的PC机;2 将TEC-XP放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3 将黑色的电源线一端接220V交流电源,另一端插在TEC-XP实

25、验箱的电源插座里;4 取出通讯线,将通讯线的9芯插头接在TEC-XP实验箱上的串口“COM1”或“COM2”上,另一端接到PC机的串口上;5 将TEC-XP实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其它实验相同;6 打开电源,船形开关和5V电源指示灯亮。7 在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可。(具体

26、步骤附后)8 按一下“RESET”按键,再按一下“START”按键,主机上显示: TEC-2000 CRT MONITOR Version 1.0 April 2001 Computer Architectur Lab., Tsinghua University Programmed by He Jia 二、实验注意事项:1. 连接电源线和通讯线前TEC-XP实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP实验系统上的芯片和PC机的串口造成损害;2. 五个黑色控制开关的功能示意图如下: 单步 手动置指令 组合逻辑 联机 8位 上面 下面连续 从内存读指令 微程序 脱机 16位3.

27、几种常用的工作方式(开关拨到上方表示为1,拨到下方为0;)工作方式5个拨动开关连续运行程序、组合逻辑控制器、联机、16位机00110连续运行程序、微程序控制器、联机、16位机00010单步、手动置指令、组合逻辑控制器、联机、16位机11110单步、手动置指令、微程序控制器、联机、16位机1101016位机、脱机运算器实验1XX00三、仿真终端软件的操作步骤:1. 在PC机上建一个文件夹TEC-XP;2. 取出配套的用户盘,将应用程序PCEC16拷贝到用户机器硬盘上该文件夹里;3. 双击PCEC16图标,出现如图所示的界面:4. 系统默认选择串口1,用户可根据实际情况选择串口1或是串口2(这里的

28、串口指的是和 TEC-XP教学实验系统相连的PC机的串口),按回车后出现如图界面: 5. 图中是系统设定的一些传输参数,建议用户不要改动,直接回车。按一下“RESET”按钮放开后再按一下“START”按钮,出现界面如图所示:6. 此时表明TEC-XP机器联机通讯正常。四软件操作注意事项:1 用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口;2 如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试;3 有时若TEC-XP实验系统不通讯,也可以重新启动软件或是重新启动

29、PC再试;4 在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。五联机通讯失败自检:如果上述的硬件和软件的操作都正确,联机却依旧失败,用户可以进行如下测试:1 测试PC机的串口是否能正常工作,或是换一台PC或换同一台PC的另一个串口再试,在换串口时要将TEC-XP实验系统断电,换完后重新启动实验系统和软件;2 检查机器上的元器件插接是否正确(建议用户对照能够正常通讯的实验系统进行详细检查),有没有被学生动过,尤其是扩展内存和扩展I/O接口时,芯片方向是否插对,片选信号有没有连接;3 检查相应的短路子是否连接正确; 4 建议教师预留一台运行正常的TEC-XP实验系统备用,机器出问题后

30、可以对照检查。六实验示例:1 用R命令查看寄存器内容或修改寄存器的内容1) 在命令行提示符状态下输入:R ;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。2) 在命令行提示符状态下输入:R R0 ;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值0036再用R命令显示寄存器内容,则R0的内容变为0036。2 用D命令显示存储器内容在命令行提示符状态下输入:D 2000 会显示从2000H地址开始的连续128个字的内容;连续使用不带参数的D命令,起始地址会自动加128(即80H)。 3. 用E命令修

31、改存储器内容在命令行提示符状态下输入:E 2000屏幕显示:2000 地址单元的原有内容:光标闪烁等待输入输入 0000依次改变地址单元20012005的内容为:1111 2222 3333 4444 5555注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。 4 用D命令显示这几个单元的内容D 2000可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。 5. 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。1) 在命令行提示符状态下

32、输入:A 2000;表示该程序从2000H(内存RAM区的起始地址)地址开始屏幕将显示:2000:输入如下形式的程序:2000: MVRD R0,AAAA ;MVRD与R0之间有且只有一个空格,其他指令相同2002: MVRD R1,55552004: ADD R0,R12005: AND R0,R12006: RET;程序的最后一个语句,必须为RET指令2007:(直接敲回车键,结束A命令输入程序的操作过程)若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。2) 用U命令反汇编刚输入的程序在命令行提示符状态下输入:U 2000在相应的地址会得到输入的指令及其操

33、作码注:连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。3) 用G命令运行前面键入的源程序G 2000程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。4) 用P或T命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T 2000寄存器R0被赋值为AAAAHT寄存器R1被赋值为5555HT做加法运算,和放在R0,R0的值变为FFFFHT做与运算,结果放在R0,R0的值变为5555H用P命令执行过程同上。注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执

34、行完成。T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。6 举例编写汇编程序, 用“A”命令输入,运行并观察结果1) 例1:设计一个小程序, 从键盘上接收一个字符并在屏幕上输出显示该字符。 在命令行提示符状态下输入:A 2000 ; 屏幕将显示:2000:输入如下形式的程序: 2000: IN 81 ;判键盘上是否按了一个键2001:SHR R0 ;即串行口是否有了输入的字符2002:SHR R02003:JRNC 2000 ;未输入完则循环测试2004:IN 80 ;接收该字符2005: OUT 80;在屏幕上输出显示字符62006: RET;每个

35、用户程序都必须用RET指令结束2007:;(按回车键即结束输入过程)注:在十六位机中,基本I/O接口的地址是确定的,数据口的地址为80,状态口的地址为81。 用“G”命令运行程序在命令行提示符状态下输入:G 2000执行上面输入的程序光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。该例建立了一个从主存2000H地址开始的小程序。在这种方式下, 所有的数字都约定使用16进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束, 才能保证程序运行结束时能正确返回到监控程序的断点

36、, 保证监控程序能继续控制教学机的运行过程。2) 例2:设计一个小程序, 用次数控制在终端屏幕上输出0到9十个数字符。 在命令行提示符状态下输入:A 2020 屏幕将显示:2020:从地址2020H开始输入下列程序:2020:MVRD R2,00OA;送入输出字符个数2022:MVRD R0,0030;“0”字符的ASCII码送寄存器R02024:OUT 80;输出保存在R0低位字节的字符2025:DEC R2;输出字符个数减12026:JRZ 202E;判10个字符输出完否,已完,则转到程序结束处2027:PUSH R0;未完,保存R0的值到堆栈中2028:IN 81;查询接口状态,判字符串

37、行输出完成否,2029:SHR R0;202A:JRNC 2028;未完成, 则循环等待 202B:POP R0;已完成, 准备输出下一字符并从堆栈恢复R0的值202C:INC R0;得到下一个要输出的字符202D:JR 2024;转去输出字符202E:RET202F:该程序的执行码放在2020H起始的连续内存区中。若送入源码的过程中有错, 系统会进行提示, 等待重新输入正确汇编语句。在输入过程中, 在应输入语句的位置直接打回车则结束输入过程。 用“G”命令运行程序在命令行提示符状态下输入:G 2020执行结果为:0123456789思考题: 若把IN 81, SHR R0, JRNC 202

38、8三个语句换成4个MVRR R0,R0语句, 该程序执行过程会出现什么现象? 试分析并实际执行一次。提示:该程序改变这三条语句后,若用T命令单条执行,会依次显示09十个数字。若用G命令运行程序,程序执行速度快,端口输出速度慢,这样就会跳跃输出。在命令行提示符状态下输G 2020,屏幕显示09。类似的, 若要求在终端屏幕上输出A到Z共26个英文字母,应如何修改例1中给出的程序? 请验证之。参考答案:在命令行提示符状态下输入:A 2100屏幕将显示:2100:从地址2100H开始输入下列程序:(2100) MVRD R2,001A ;循环次数为26MVRD R0,0041 ;字符“A”的值(210

39、4) OUT 80 ;输出保存在R0低位字节的字符DEC R2 ;输出字符个数减1JRZ 210E ;判26个字符输出完否,已完,则转移到程序结束处PUSH R0 ;未完,保存R0的值到堆栈中(2108)IN 81 ;查询接口状态,判字符串行输出完成否SHR R0JRNC 2108;未完成, 则循环等待 POP R0;已完成, 准备输出下一字符,从堆栈恢复R0的值 INC R0;得到下一个要输出的字符JR 2104;转去输出字符(210E)RET 用G命令执行该程序,屏幕上显示“A”“Z”26个英文字母. 例3: 从键盘上连续打入多个属于0到9的数字符并在屏幕上显示, 遇到非数字字 符结束输入

40、过程。 在命令行提示符状态下输入:A 2040屏幕将显示:2040:从地址2040H开始输入程序: (2040)MVRD R2,0030;MVRD R3,0039; (2044)IN 81;SHR R0;SHR R0JRNC 2044;IN 80;MVRD R1,00FFAND R0,R1;CMP R0,R2;JRNC 2053;CMP R3 ,R0;JRNC 2053;OUT 80;JMPA 2044; (2053)RET 在命令行提示符状态下输入:G 2040 光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。

41、思考题, 本程序中为什么不必判别串行口输出完成否? 设计打入AZ和09的程序, 遇到其它字符结束输入过程。7例子4: 计算1到10的累加和。 在命令行提示符状态下输入:A 2060屏幕将显示:2060:从地址2060H开始输入程序:(2060)MVRD R1,0000;MVRD R2,000A;MVRD R3,0000;(2033) INC R3;ADD R1,R3;CMP R3,R2;JRNZ 2066;RET 在命令行提示符状态下输入:G 2060运行过后, 可以用R命令观察累加器的内容。R1的内容为累加和。结果为:R1= 0037 R2= 000A R3= 000A 例子5:设计一个有读

42、写内存和子程序调用指令的程序,功能是读出内存中的 字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。 将被显示的6个字符AF送入到内存20F0H开始的存储区域中。在命令行提示符状态下输入:E 20F0屏幕将显示:20F0 内存单元原值:按下列格式输入:20F0 内存原值:0041 内存原值:0042 内存原值:0043 内存原值:0044 内存原值:0045 内存原值:0046 在命令行提示符状态下输入:从地址2080H开始输入下列程序:(2080)MVRD R3,0006 ;指定被读数据的个数MVRD R2,20F0 ;指定被读、写数据内存区首地址(2084)LDRR

43、R0,R2 ;读内存中的一个字符到R0寄存器CALA 2100 ;指定子程序地址为2100,调用子程序,完成显示、转换并写回的功能DEC R3 ;检查输出的字符个数 JRZ 208B ;完成输出则结束程序的执行过程INC R2 ;未完成,修改内存地址JR 2084 ;转移到程序的2086处,循环执行规定的处理(208B)RET从地址2100H开始输入下列程序: (2100)OUT 80;输出保存在R0寄存器中的字符MVRD R1,0020ADD R0,R1 ;将保存在R0中的大写字母转换为小写字母STRR R2,R0;写R0中的字符到内存,地址同LOD所用的地址 (2105)IN 81;测试串

44、行接口是否完成输出过程SHR R0JRNC 2105;未完成输出过程则循环测试RET;结束子程序执行过程,返回主程序 在命令行提示符状态下输入:G 2080 屏幕显示运行结果为:ABCDEF 在命令行提示符状态下输入:D 20F0 20F0H20F5H内存单元的内容为:0061 0062 0063 0064 0065 0066 例子6:设计一个程序在显示器屏幕上循环显示95个(包括空格字符)可打印字符。在命令行提示符状态下输入:A 20A0屏幕将显示:20A0:从地址20A0H开始输入下列程序:A 20A0 ;从内存的20A0单元开始建立用户的第一个程序20A0: MVRD R1,7E ;向寄

45、存器传送立即数20A2: MVRD R0,20 ;20A4: OUT 80 ;通过串行接口输出R0低位字节内容到显示器屏幕20A5: PUSH R0 ;保存R0寄存器的内容到堆栈中20A6: IN 81 ;读串行接口的状态寄存器的内容20A7: SHR R0 ;R0寄存器的内容右移一位,最低位的值移入标志位C20A8: JRNC 20A6 ;条件转移指令,当标志位C不是1时就转到20A6地址20A9: POP R0 ;从堆栈中恢复R0寄存器的原内容20AA: CMP R0,R1 ;比较两个寄存器的内容是否相同,相同则标志位Z=120AB: JRZ 20A0 ;条件转移指令,当标志位Z为1时转到

46、200A0地址20AC: INC R0 ;把R0寄存器的内容增加120AE: JR 20A4 ;无条件转移指令,一定转移到20A4地址20AF: RET ;子程序返回指令,程序结束 在命令行提示符状态下输入:G 20A0运行过后, 可以观察到显示器上会显示出所有可打印的字符。 上述例子, 都是用监控程序的A命令完成输入源汇编程序的。在涉及到汇编语句标号的地方, 不能用符号表示, 只能在指令中使用绝对地址。使用内存中的数据, 也由程序员给出数据在内存中的绝对地址。显而易见, 对这样的极短小程序矛盾并不突出, 但很容易想到,对很大的程序, 一定会有较大的困难。在用A命令输入汇编源语句的过程中, 有

47、一定用机经验的人, 常常抱怨A命令中未提供适当的编辑功能, 这并不是设计者的疏漏, 因为我们并不准备在这种操作方式下支持设计较长的程序, 这种工作应转到提供了交叉汇编程序的PC机上去完成。相反的情况是, 输入上述一些小程序, 用监控程序的A命令完成, 往往比用交叉汇编完成更简捷。2.2 脱机运算器实验实验目的深入了解AM2901运算器的功能与具体用法,4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识。实验说明脱机运算器实验,是指让运算器从教学计算机整机中脱离出来,此时,它的全部控制与操作均需通过两个12位的微型开关来完成,这就谈不上执行指令,只能通过开关、按键控制教

48、学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。下面先把前边讲过的、与该实验直接有关的结论性内容汇总如下。一 12位微型开关的具体控制功能分配如下:A口、B口地址:送给AM2901器件用于选择源与目的操作数的寄存器编号;I8-I0:选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位的控制码;SCi、SSH和SST:用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。a) 开关位置说明:做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拨动开关。微动开关是红色的,一个微动开关可以提供12位的控制信号

49、,标有micro switch 1和micro switch 2;数据开关是黑色的,左边的标有SWH的是高8位,右边的标有SWL的是低8位。微动开关与控制信号对应关系见表(由左到右):Micro switch 1Micro switch 2I8-I6I5-I3I2-I0SSTSSH SCIB PORTA PORTb) 开关检测 红色微动开关是该实验系统使用寿命最短的器件,开关好坏的检测方法比较简单,用户将五个控制机器工作方式的开关置于“1XX00”,从左面起第二个和第三个的开关处于任意位置,然后将两个微动开关上的24个小纽子依次置为1(开关拨到上方为1),看对应的指示灯是否亮,如果有一个或数个

50、指示灯不亮,则一般是开关出了问题。实验步骤1 将教学机左下方的5个拨动开关置为1XX00(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。2 接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:其中D1取为0101H,D2取为1010H;通过两个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志。 运算I8-I0SSTSSHSCiBA压START前压START后ALU输出CZVSALU输出CZVS*D1+0-R001100011100100000000不用0101随机01010

51、000*D2+0-R101100011100100000001不用1010000010100000R0+R1-R00110000010010000000000011111000021210000RO-R1-R001100100100100010000000101010000F0F11000R1-R0-R10110010010010001000100000F0F10000E0E1000R0R1-R00110110010010000000100000F0F10000F0F1000R0R1-R0011100001001000000000010101100001011000R0R1-R00111100

52、010010000000000010E0E100001011000(R0R1)-R0011111001001000000000001FEFE10000E0E10012*R0-R011100001100100000000不用FEFE1001FDFC0001R0/2-R010100001100100000000不用FDFC00017EFE0001注:用*标记的运算,表示D1、D2的数据是由拨动开关SW给出的,开关给的是二进制的信号,注意二进制和十六进制间的转换。按“START”按键之前,ALU输出的是计算结果,参照ALU的操作周期的时序可知A、B口数据锁存是在时钟的下降沿,通用寄存器的接收是在低电

53、平,所以要想寄存器接收ALU的计算结果必须按一次“START”按键。实验要求 1实验之前认真预习,写出预习报告,包括操作步骤,实验过程所用数据和运行结果等,否则实验效率会很低,所学到的内容也会大受影响;2实验过程当中,要仔细进行,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,记录运行结果;3实验之后,认真写出实验报告,包括对遇到的各种现象的分析,实验步骤和实验结果,自己在这次实验的心得体会与收获。2.3 组合逻辑控制器部件教学实验实验目的通过看懂教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、SHR、OUT、MVRD、JRC、RET、CALA等指令)的功能、格式和执行流

54、程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。其最终要达到的目的是:1 深入理解计算机控制器的功能、组成知识;2 深入地学习计算机各类典型指令的执行流程;3 对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;4 学习组合逻辑控制器的设计过程和相关技术。实验说明控制器设计是学习计算机总体组成和设计的最重要的部分。要在TEC-XP教学计算机完成这项实验,必须比较清楚地懂得:1 TEC-XP教学机的组合逻辑控制器主要由MACH器件和一片产生节拍的GAL20V8组成;2 TEC-XP教学机上已实现了29条基本指令,的控制信号由MACH给出的3 应了解监控程

55、序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行有扩展指令的程序。4 要明白TEC-XP教学机支持的指令格式及指令执行流程分组情况;理解TEC-XP教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计与实现中的具体线路和控制信号的组成。5 要明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。为了完成自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括:1) 确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;2) 划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能地与原用节拍的状态保持一致和相近;3) 在指令流程表中填写每一个控制信号的状态值,基本

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!