计算机组成原理实验指导书2012年.doc_第1页
计算机组成原理实验指导书2012年.doc_第2页
计算机组成原理实验指导书2012年.doc_第3页
计算机组成原理实验指导书2012年.doc_第4页
计算机组成原理实验指导书2012年.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理实 验 指 导 书 计算机科学学院2012年3月35目 录第一章 TEC-2000A实验系统概述11.1 TEC-2000A的硬件子系统组成11.2 TEC-2000A教学机系统的技术指标与系统配置21.3 教学机系统支持的实验项目3第二章 实验指导52.1 联机通讯与基础汇编程序设计实验52.2主存储器部件的扩展实验162.3 I/O口扩展实验212.4 脱机运算器实验242.5 组合逻辑控制器部件实验28 第一章 TEC-2000A实验系统概述TEC-2000A是由多个型号产品构成的系列教学实验计算机系统的总称。硬软件配置相对完整、可支持8位或16位字长、可以选用组合逻辑控制器或微程序控制器方案、文字与图纸资料相对齐全、主要用于“计算机组成原理”课程的教学与实验的计算机系统。 该系统是一台硬件组成相对完备的计算机系统, CPU、主存、I/O接口及总线等有一定的典型性, 并能驱动最常用的计算机输入/输出设备,用户可把该机的组成与设计,作为计算机组成原理课程授课的实例内容, 理论联系实际, 保证课程各主要章节教学内容的理论深度和较高的实用性; 该系统提供计算机组成原理课所要求的教学实验功能, 实验手段实用先进,学生可深入进到计算机CPU内部, 查看、测试各主要信号与部件工作状态, 修改已实现的设计, 增加自己新的设计, 达到 亲口尝梨 的效果,并允许学生从头完成另一套全新设计。能有效提高学生学习兴趣, 培养学生设计与动手实践的基本技能,增强学生的创新意识。 该系统有很高的易学易用性。这主要体现在以下诸方面: 该系统中的硬软件组成是最小配置, 体现的是计算机硬件系统组成的基本原理和基础知识, 不过多地涉及系统性能完善及合理性等问题。这包括小巧的指令系统, 最小的监控程序, 简单的控制器设计, 小的主存和简单的输入/输出接口等。 该系统的物理结构设计成全暴露方式。全部线路做在一、二块印制电路板上, 以互不遮盖方式插接在一起;全部线路芯片均以芯片插座与线路板连接;逻辑线路按功能部件划分在印制板的不同区域;主板上安装有一定数量的开关、按键与指示灯;线路板上布有适当的量测孔, 一定数量的跳线夹, 用以人为设置机器故障或变更设计。 该系统提供适当的软件支持与常规输入/输出外设接入支持, 它既是学习计算机组成原理知识的必备部分, 也提供了完成多项教学实验的最先进的实验手段。配备适当的软件系统是我们突出强调的重要目标之一。 该系统提供最齐全的设计、实现、操作使用的资料。这是保证教师与学生在教学过程中用好、学好有关知识的重要条件。包括全部图纸、器件清单、印制板上的器件布局、可编程器件的逻辑内容, 指令格式与功能, 微指令格式及微程序清单, 组合逻辑的指令执行流程表及化简后的全部逻辑表达式, 监控程序的源码等内容, 还包括对上述内容必要的文字说明,还提供PC机仿真终端程序、交叉汇编程序源程序清单。 1.1 TEC-2000A的硬件子系统组成硬件子系统的实际组成示意表示图1.1所示。运算器中配置了两组独立的8位字长的运算器,各自由2片位片结构的运算器器件组成:还有四位的状态标志寄存器和教学实验所需的相关逻辑部件。当选择机器字长为8位时,只使用其中的一个8位字长的运算器:当选择机器字长为16位时,要把两个8位字长的运算器分别用作为16位字长的高低8位,从而组合成一个16位字长的运算器。全部的算术与逻辑运算均在这里完成还完成;几种寻址方式的实际地址计算;它也是主要的数据、地址传送的通路。要特别说明的一点是,堆栈指针SP和控制器中的程序计数器PC,都是用这里的几个通用寄存器来实现的,以节省器件与简化实验机的实现。图1.1TEC-2000A硬件子系统的组成示意图控制器用硬布线方式实现,节拍逻辑与时序控制信号形成部件(组合逻辑线路)选用了GAL20V8现场可编程器件和Macro Array CMOS High density 简写为MACH器件,这对简化控制器的逻辑设计与实现至关重要,也有利于进一步掌握数字系统设计自动化和逻辑模拟的新知识。主存储器选用静态存储器芯片,配置了两路各自由8K字节容量的ROM(放监控程序)和2K字节容量的RAM(放用户程序和数据)存储区域组成的主存储器。当机器字长为8位时只使用其中的一路而把另外一路用作为扩展存储器容量的芯片使用,当机器字长为16位时,将把两路8位的存储器分别作为高低位字节,从而构成一个16位的存储器。还配置了另外2片存储器芯片的器件插座可以方便地完成对8位或16位字长的内存储器的容量扩展实验。对ROM存储区可以电擦除28系列的存储器芯片实现对8位和16位字长的两种计算机系统,地址总线都采用16位宽度以便访问较大的主存空间。1.2 TEC-2000A教学机系统的技术指标与系统配置教学机系统的主要技术指标是: (1) 机器字长8位或16位, 即运算器、主存、数据总线均可以是8位或16位,但地址总线都是16位。 (2) 指令系统, 基本指令系统分为8位或16位两种,支持多种基本寻址方式。其中一部分指令已实现, 用于设计监控程序和用户的常规汇编程序, 尚保留多条指令供实验者自己实现。请注意,由8位字长和16位字长分别构成的是两套完全不同的指令系统,甚至于都很难考虑它们之间的兼容性,故由8位字长或16位字长组成的是两种完全不同的计算机系统。 (3) 主存最大寻址空间是36K字节(8位机)或18K字(16位机), 基本容量为8K(字节或16位的字)容量的ROM和2K(字节或16位的字)容量的RAM存储区域。还可以进一步完成容量扩展的教学实验。 (4) 原理上讲,主振可在几百KHz近2MHz之间选择。 (5) 运算器由2片或4片位片结构器件级联而成, 片间用串行进位方式传递进位信号。ALU实现8种算术与逻辑运算功能, 内部包括16个双端口读出、单端口写入的通用寄存器, 和一个能自行移位的乘商寄存器。设置C(进位)、Z(结果为0), V(溢出)和S(符号位)四个状态标志位。 (6) 控制器采用微程序和硬布线两种控制方案实现, 可由实验者自由选择。实验人员可方便地修改已有设计, 或加进若干条自己设计与实现的新指令, 新老指令同时运行。 (7) 主机上安装有一路INTEL8251串行接口,可直接接计算机终端, 或接入一台PC机作为自己的仿真终端。选用了MAX202倍压线路,以避免使用+12V和-12V电源。 (8) 在主板上设置了一定扩展实验用的器件插座, 提供扩展内存和各种输入/输出接口实验所需的地址、数据和控制等信号, 以便支持在主板上完成这类扩展实验。 (9)在主板的右下角位置,设置了完成中断教学实验的全套线路。 (10) 在主板上设置有一些拨数的开关和微型开关、按键和指示灯, 支持最低层的手工操作方式的输入/输出和机器调试。板上还有支持教学实验用的一定数量的跳线夹。 (11) 实验机硬件系统, 主要功能部件划分在大一些的水平放置的一块印制电路板的不同区域, 微程序控制器的主要部分划分在小一些的垂直插接的一块印制电路板上,所有器件都用插座插接在印制板上, 便于更换器件。 (12)实验计算机使用单一的5V、最大电流3A的直流模块电源,所耗电流在1.52A之间。电源模块安装在水平电路板右上角位置, 220V交流电通过电源线插送到电源插座上,并用一个开关控制交流电源的接通或断开。 (13)板上安装了很多发光二极管指示灯,用于显示重要的数据或控制信号的状态。1.3 教学机系统支持的实验项目基本实验项目 指学习计算机组成原理通常要完成的实验项目, 通过这些实验可解决学习基本原理和训练基本技能的问题。 1. 联机通讯与基础汇编程序设计实验 学习使用TEC-2000A实验箱,用系统已实现的多条指令和监控程序, 编写并调试由教师布置的或自己设想的可在教学计算机上运行的各种汇编程序。 2. 运算器部件实验 可在运算器完全脱离主机控制的方式下, 用主板上的微型开关直接提供控制运算器运行的控制信号,来使用运算器并观察运算结果;也可以在实验机正常运行方式下, 由控制器给出实验者所设计的控制运算器运行的控制信号,来使用运算器并观察运算结果 (此时并不需要懂得控制器的运行原理)。 3. 主存储器部件的扩展实验 可进行8位机的静态存储器(RAM芯片和ROM芯片)的容量扩展。可以设计并实现16位字长的主存储器(RAM芯片和ROM芯片)及容量扩展实验。在选用电擦除的28系列(例如58C65)的存储器芯片时,可以进行该芯片的读(正常操作)写(有特殊要求)操作,并检查断电后它的内容是否仍能保持。 4. 组合逻辑控制器部件实验 可以做组合逻辑方案的控制器实验。通过听课和操作实验机, 学懂已实现的指令的设计原理与实现技术。 5. I/O口扩展实验 本机上只给出了一路串行接口,保留另外一路串行接口由学生设计并调试出来。这里的实验几乎包括这一路串行接口设计、实现的全部工作,也包括使用过程中的串行口初始化, 用程序控制方式完成串行接口数据正常的输入/输出操作;接下来还可以实现用两台实验机的串行口完成双机双向通信等实验。作为更高要求, 还可以增加少量硬件线路,实现终端在中断方式下完成输入/输出操作(需在讲过中断之后进行)。还可以观察与量测串行数据的波形, 起始位, 停止位, 串行数据采样时间等配合关系。第二章 实验指导2.1 联机通讯与基础汇编程序设计实验实验目的:1 学习TEC-2000A联机通讯方法2 学习和了解TEC-2000A十六位机监控命令的用法;3 学习和了解TEC-2000A十六位机的指令系统;4 学习简单的TEC-2000A十六位机汇编程序设计;实验内容:1 用通讯线将TEC-2000A实验箱与计算机相连,并实现两者之间的通讯;2 使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;3 使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;实验要求:在使用该教学机之前,应先熟悉教学机的各个组成部分,及其使用方法。准备知识:一 仿真终端程序PCEC16在IBM-PC 机上找到PCEC16所在的位置,并记下它的位置,并在MSDOS命令提示符下(开始程序附件命令提示符),打入程序名PCEC16并回车,接下来按程序的提示分别选择连接教学机的PC机的串行接口号(1或2)和通讯参数。程序中默认的通讯参数为:波特率9600,8位字长,无奇偶校验和1位停止位没有特殊要求时一般不需修改这些参数,IBM-PC机作为教学机的终端,可以执行教学机监控程序的各种命令PC机作为教学机的控制台之后,按F10 键,显示菜单0-Return to CRT Monitor1-Send a file to TEC2-Receive a file from TEC3-Return to IBM-PC MSDOS选择0 不执行任何操作直接返回教学机的监控状态。选择3 退出通讯程序返回IBM-PC 的操作系统。选择1 将执行往教学机发送文件。选择2 将执行从教学机接收文件并作为文件存于PC的磁盘中。二监控程序TEC-2000A 教学计算机的操作与使用方法主要指通过由监控程序提供的监控命令控制教学计算机的运行功能。教学计算机处于正常运行状态时,它通过串行接口和中断或PC 机仿真终端在PC机上运行PCEC 相连接,使用常用的R、A 等监控命令可以进行联机操作,这些监控命令实现类似于PC 机DOS 系统下的Debug 程序的功能,包括A、U、G、T、R、D、E 共7 条命令其格式为一个大写的英文字母表示的命令名、一个空格跟命令参数下面分别介绍单条汇编命令A格式:A adr这里的 adr 表示此处的地址参数,由4 位十六进制的数组成(下同)无此参数时,系统将取默认值。需要注意的是命令用大小写字母均可,命令和地址之间可以不用空格,其它命令用法也是这样。功能:完成单条指令的汇编操作,把产生出来的教学计算机的执行代码放入对应的内存单元中。命令名后的地址将是头一条汇编语句的执行码的内存单元地址。每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下条汇编语句。在应该输入汇编语句时,如果不给出汇编语句而直接回车,则结束A 命令的运行过程。反汇编命令U格式:U adr功能:每次从指定的或默认的地址反汇编15 条指令,并将结果显示在终端屏幕上。反汇编完成之后,已将该命令的默认地址修改好接下来键入不带参数的U 命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。执行程序命令G格式:G adr功能:从指定的或默认的地址连续运行一个用户,为了使程序执行后能返回监控程序,要求每个用户程序的最后一条指令一定为RET 指令。单指令执行程序命令T格式:T adr功能:从指定的(或PC 中的当前地址)开始单条执行程序指令,每执行一次T 将执行一条指令,每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。显示/修改寄存器内容命令R格式:R 寄存器名功能:不带参数时,是显示全部寄存器及状态寄存器的值,并反汇编当前PC 所指的一条指令,其中状态的显示格式为:“F=8 位二进制数”,其前四位分别对应于C、Z、V、S的值。带参数时,是修改相应寄存器的值,如R R0,再输入36,表示把16 进制的值36 赋给R0。显示存储器内容命令D格式:D adr功能:从指定(或默认的)地址开始,显示内存128 个存储字的内容,连续的D 命令,保证显示内容前后正确的连续关系,即每次执行D 命令,会将默认的地址值加上128。修改存储器内容命令E格式:E adr功能:从指定(或默认的)地址逐字节修改每个内存单元的内容,要求用户输入一个新的值,如果要连续修改下面的单元的内容,则应在输入新值后按空格键,若用户敲了回车键,则会结束E命令的执行过程。使用上述7 条命令就可以完成一些所期望的操作。三. TEC-2000A指令系统1单字、无操作数指令PSHF 状态标志C Z V S入栈POPF 弹出栈顶数据送状态标志寄存器RET 子程序返回2单字、单操作数指令DEC DR; DRDR-1INC DR; DRDR+1SHL DR; DR 逻辑左移,最低位补0,最高位移入CSHR DR; DR 逻辑右移,最高位补0,最低位移入CJR OFFSET; 无条件跳转到ADR,ADR=原PC 值+OFFSETJRC OFFSET; 当C=1 时,跳转到ADR,ADR=原PC 值+OFFSETJRNC OFFSET; 当C=0 时,跳转到ADR,ADR=原PC 值+OFFSETJRZ OFFSET; 当Z=1 时,跳转到ADR,ADR=原PC 值+OFFSETJRNZ OFFSET; 当Z=0 时,跳转到ADR,ADR=原PC 值+OFFSETIN I/O PORT; R0I/O PORT,从外设I/O PORT 端口读入数据到R0OUT I/O PORT;I/O PORTR0,将R0 中的数据写入外设I/O PORT 端口PUSH SR; SR 入栈POP DR; 弹出栈顶数据送DR3单字、双操作数指令ADD DR,SR; DRDR+SRSUB DR, SR; DRDR-SRAND DR,SR; DRDR and SRCMP DR,SR; DR-SRXOR DR,SR; DRDR xor SRTEST DR,SR; DR and SROR DR,SR; DRDR or SRMVRR DR,SR; DRSRLDRR DR,SR; DR SRSTRR DR,SR; DR SR4双字、单操作数指令JMPA ADR; 无条件跳转到地址ADRCALA ADR; 调用首地址在ADR 的子程序5双字、双操作数指令MVRD DR,DATA; DRDATA实验步骤:一 联机通讯1 联机通讯的硬件连线操作a.准备一台串口工作良好的PC机;b.将TEC-2000A 放在实验台上,打开实验箱的盖子,确定电源处于断开状态;c.将黑色的电源线一端接220V交流电源,另一端插在TEC-2000A实验板的插座里;d.取出通讯线,将通讯线的9芯插头接在TEC-2000A实验板上的串口“COM1”上,另一端接到PC机的串口上;e.将TEC-2000A实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在联机操作时,连接方式位:00X01。f.找到COM2旁边的D8251AFC-2芯片(在实验箱左上角),把它的与其附近的I/O 中的一个引脚(共7个引脚)相连。g.在实验箱的右侧中间部分,有6个垂直排列的内存芯片,MonitorL_16、HN58665P_15、HM6116ALP_3和MonitorH_16、HN58665P_15、HM6116ALP_3(这六个芯片是3对,每个芯片均是8位的,我们做的16位的实验,所以两组芯片共同组成16位,这两组芯片,上面一组是低位芯片,下面一组是高位芯片),找到下面一组高位芯片中的HN58665P_15,将其右侧的引脚与 MEM 中的一个引脚(共6个引脚)相连。h.打开电源,船形开关和5V电源指示灯亮。2.硬件操作注意事项a.连接电源线和通讯线前,TEC-2000A实验系统的电源开关一定要处于断开状态,否则可能会烧坏实验箱和PC机的串行通讯口。b.五个黑色控制开关的示意图单步 手动置指令 组合逻辑 8位 联机连续 从内存读指令 微程序 16位 脱机几种常用的工作方式(开关拨上方表示为1,拨下方表示0)工作方式(以16位机为例)5个拨动开关连续运行程序、组合逻辑控制、16位机、联机00101连续运行程序、微程序控制、16位机、联机00001单步、手动置指令、组合逻辑控制、16位机、联机11101单步、手动置指令、微程序控制、16位机、联机1100116位、脱机运算器实验1XX003应用软件的操作a.开始程序附件命令提示符b.找到PCEC16.EXE所在的文件夹,键入PCEC16回车,出现选择串行通讯口COM1或COM2的界面,若实验箱与PC机的COM1相连,则输入1,若实验箱与PC机的COM2相连,则输入2,回车。c.此时屏幕出现关于实验箱和PC机通讯的参数(波特率、校验位、停止位、信息位长度),这些参数一般不用改动,直接按回车。d.按一下“RESET”(在实验箱左下方)按钮,放开后再按一下“START”按钮(在实验箱左下方),若界面中出现提示符“”则表示实验箱与PC机通讯成功,若不成功,需要按F10,会出现一个菜单0-Return to CRT Monitor1-Send a file to TEC2-Receive a file from TEC3-Return to IBM-PC MSDOS选择3返回DOS,然后重新输入PCEC16回车,在出现的界面中输入2,重复上面的步骤试试,若通讯成功,即可。若仍然不成功,需要仔细检查电源线、通讯线和实验箱的电源是否打开。e.实验做完后,若想退出系统,可按类似d的步骤,按F10,选择3,返回DOS,在DOS环境下,若想返回window,输入exit即可。二基础汇编程序设计1 关闭电源,将大板上的COM1口与PC机的串口相连;2 接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3 置控制开关为00101(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同;4 按一下“RESET”按键,再按一下“START”按键,主机上显示: TEC-2000 CRT MONITOR Version 1.0 April 2001 Computer Architectur Lab., Tsinghua University Programmed by He Jia 5 用R命令查看寄存器内容或修改寄存器的内容1) 在命令行提示符状态下输入:R ;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。2) 在命令行提示符状态下输入:R R0 ;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值0036再用R命令显示寄存器内容,则R0的内容变为0036。6 用D命令显示存储器内容在命令行提示符状态下输入:D 2000 会显示从2000H地址开始的连续128个字的内容;连续使用不带参数的D命令,起始地址会自动加128(即80H)。7 用E命令修改存储器内容在命令行提示符状态下输入:E 2000屏幕显示:2000 地址单元的原有内容:光标闪烁等待输入输入 0000依次改变地址单元20012005的内容为:1111 2222 3333 4444 5555注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。 用D命令显示这几个单元的内容D 2000可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。8 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行 程序并观察运行结果。1) 在命令行提示符状态下输入: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在相应的地址会得到输入的指令及其操作码注:连续使用不带参数的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语句连同被调用的子程序一次执行完成。T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。9 举例编写汇编程序, 用“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;每个用户程序都必须用RET指令结束2007:;(按回车键即结束输入过程)注:在十六位机中,基本I/O接口的地址是确定的,数据口的的值为80,状态口的地址为81。 用“G”命令运行程序在命令行提示符状态下输入:G 2000执行上面输入的程序光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。该例建立了一个从主存2000H地址开始的小程序。在这种方式下, 所有的数字都约定使用16进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束, 才能保证程序运行结束时能正确返回到监控程序的断点, 保证监控程序能继续控制教学机的运行过程。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;查询接口状态,判字符串行输出完成否,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, JNC 2028三个语句换成3个MOV R0,R0语句, 该程序执行过程会出现什么现象? 试分析并实际执行一次。提示:该程序改变这三条语句后,若用T命令单条执行,会依次显示09十个数字。若用G命令运行程序,程序执行速度快,端口输出速度慢,这样就会跳跃输出。在命令行提示符状态下输G 2020,屏幕显示09。类似的, 若要求在终端屏幕上输出A到Z共26个英文字母,应如何修改例1中给出的程序? 请验证之。参考答案:在命令行提示符状态下输入:A 2100屏幕将显示:2100:从地址2100H开始输入下列程序: (2100) MVRD R2,001A ;循环次数为26MVRD R0,0041 ;字符“A”的值 (2104) OUT 80 ;输出保存在R0低位字节的字符DEC R2 ;输出字符个数减1JRZ 210E ;判26个字符输出完否,已完,则转移到程序结束处PUSH R0 ;未完,保存R0的值到堆栈中(2108)IN 81 ;查询接口状态,判字符串行输出完成否 SHR R0 JRNC 2108;未完成, 则循环等待 POP R0;已完成, 准备输出下一字符,从堆栈恢复R0的值 INC R0;得到下一个要输出的字符 JR 2104;转去输出字符 (210E)RET 用G命令执行该程序,屏幕上显示“A”“Z”26个英文字母. 例子3: 从键盘上连续打入多个属于0到9的数字符并在屏幕上显示, 遇非数字 符结束输入过程。 在命令行提示符状态下输入:A 2040屏幕将显示:2040:从地址2040H开始输入下列程序:(2040)MVRD R2, 0030 ; 用于判数字符的下界值MVRD R3, 0039 ; 用于判数字符的上界值 (2044) IN 81 ; 判键盘上是否按了一个键, SHR R0 ; 即串行口是否有了输入的字符SHR R0 JRNC 2044 ; 没有输入则循环测试IN 80 ; 输入字符到R0MVRD R1,00FFAND R0,R1 ;清零R0的高位字节内容CMP R0, R2 ; 判输入字符字符0否JRNC 2053 ; 为否, 则转到程序结束处CMP R3, R0 ; 判输入字符字符9否JRNC 2053 ; 为否, 则转到程序结束处OUT 80 ; 输出刚输入的数字符JMPA 2044 ; 转去程序前边2044处等待输入下一个字符 (2053) RET 在命令行提示符状态下输入:G 2040 光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。 思考题, 本程序中为什么不必判别串行口输出完成否? 设计打入AZ和09的程序, 遇其它字符结束输入过程。例子4: 计算1到10的累加和。 在命令行提示符状态下输入:A 2060屏幕将显示:2060:从地址2060H开始输入下列程序:(2060)MVRD R1, 0000; 置累加和的初值为0MVRD R2, 00OA; 最大的加数MVRD R3, 0000 (2066) INC R3; 得到下一个参加累加的数ADD R1, R3; 累加计算CMP R3, R2; 判是否累加完JRNZ 2066; 未完, 开始下一轮累加RET 在命令行提示符状态下输入:G 2060运行过后, 可以用R命令观察累加器的内容。R1的内容为累加和。结果为:R1=0037 R2=00OA R3=00OA例子5:设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的 字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。 将被显示的6个字符AF送入到内存20F0H开始的存储区域中。在命令行提示符状态下输入:E 20F0屏幕将显示:20F0 内存单元原值:按下列格式输入:20F0 内存原值:0041 内存原值:0042 内存原值:0043 内存原值:0044 内存原值:0045 内存原值:0046 在命令行提示符状态下输入:从地址2080H开始输入下列程序:(2080)MVRD R3, 0006 ;指定被读数据的个数MVRD R2, 20F0 ;指定被读、写数据内存区首地址(2084)LDRR 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;测试串行接口是否完成输出过程SHR R0JRNC 2105;未完成输出过程则循环测试RET;结束子程序执行过程,返回主程序 在命令行提示符状态下输入:G 2080 屏幕显示运行结果为:ABCDEF 在命令行提示符状态下输入:D 20F0 20F0H20F5H内存单元的内容为:0061 0062 0063 0064 0065 0066 上述例子, 都是用监控程序的A命令完成输入源汇编程序的。在涉及到汇编语句标号的地方, 不能用符号表示, 只能在指令中使用绝对地址。使用内存中的数据, 也由程序员给出数据在内存中的绝对地址。显而易见, 对这样的极短小程序矛盾并不突出, 但很容易想到,对很大的程序, 一定会有较大的困难。在用A命令输入汇编源语句的过程中, 有一定用机经验的人, 常常抱怨A命令中未提供适当的编辑功能, 这并不是设计者的疏漏, 因为我们并不准备在这种操作方式下支持设计较长的程序, 这种工作应转到提供了交叉汇编程序的PC机上去完成。相反的情况是, 输入上述一些小程序, 用监控程序的A命令完成, 往往比用交叉汇编完成更简捷。2.2主存储器部件的扩展实验实验目的:通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。其最终要达到的目的是:1 深入理解计算机内存储器的功能、组成知识;2深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。准备知识: 教学机配置了6 个存储器芯片插座其中4 个28 芯插座可插只读存储器28C64(或其兼容芯片58C65),2 个24 芯插座可插静态随机存储器6116。这6 片存储器芯片被分成两组,每组由2片8K字节容量的ROM和1片2K字节容量的RAM 组成。16 位机的基本存储器(指的是运行监控程序所必需的存储器)同时使用这两组,下面一组为高8位,上面一组为低8 位。标有MonitorL_16和MonitorH_16的芯片用来存放监控程序,标有HM6116ALP_3的两片芯片用来存放用户程序和数据以及监控程序临时数据和堆栈。另外2个芯片HN58C65P_15用来对存储器容量进行扩展,两组存储器的地址线直接与地址总线AB相连,下面一组存储器的数据线与数据总线的高8位D15D8相连,上面一组存储器的数据线与数据总线的低8位D7D0相连。图 2.1 实验箱内存排列图可以扩展的存储器的片选信号未连好,只是通过圆孔针(均标有/CS)引出。这就要求在扩展存储器时,要为其提供片选信号。16 位机: 0000H1FFFH:监控程序2600H27FFH:监控程序临时数据和堆栈2000H25FFH:用户区可存放用户的程序和数据4000HFFFFH:用户扩展区可存放用户的程序和数据实验说明:教学计算机存储器系统由ROM和RAM两个存储区组成,分别用EEPROM芯片和RAM芯片构成。TEC-2000A教学计算机中还安排了另外几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚地了解:1 TEC-2000A教学机的存储器系统的总体组成及其连接关系;2 TEC-2000A教学机的有关存储器芯片、I/O接口芯片的片选控制和读写命令的给出和具体使用办法;3 RAN和EPROM、EEPROM存储器芯片在读写控制、写入时间等方面的同异之处,并正确建立连线关系和在程序中完成正确读写过程;4 如何在TEC-2000A教学机中使用扩展的存储器空间并检查其运行的正确性。实验内容:1 要完成存储器容量扩展的教学实验,需为扩展存储器选择一个地址,即将扩展存储器的片选(标有/CS的2个插孔的上面一个)与标有MEM /CS的插孔中的一个相连;2 用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(28系列芯片);3 用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确;4 用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行;实验要求:1 实验之前,应认真预先准备,写出实验步骤和具体设计内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容;2 实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,提高学习的主动性和创造性,把自己想不太明白的问题通过实验理解清楚,争取最好的实验效果,力求达到教学实验的主要目的;3 实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的主要问题和分析与解决问题的思路。实验报告中,还应写出自己的学习心得和切身体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅并给出实验成绩。实验步骤:1 RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。1用E命令改变内存单元的值并用D命令观察结果。 在命令行提示符状态下输入:E 2020 屏幕将显示: 2020 内存单元原值:按如下形式键入: 2020 原值:2222 (空格)原值:3333(空格)原值:4444(空格)原值:5555 在命令行提示符状态下输入:D 2020 屏幕将显示从2020内存单元开始的值,其中2020H2023H的值为:2222 3333 4444 55553断电后重新启动教学实验机,用D命令观察内存单元20202023的值。会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM时,必须每次断电重启后都要重新输入程序或修改内存单元的值。2 用A命令输入一段程序,执行并观察结果。 在命令行提示符状态下输入:A 2000 屏幕将显示: 2000:按如下形式键入:2000: MVRD R0,AAAA2002: MVRD R1,55552004: AND R0,R12005: RET2006: 在命令行提示符状态下输入:T 2000 R0的值变为AAAAH,其余寄存器的值不变。TR1的值变为5555H,其余寄存器的值不变。TR0的值变为0000H,其余寄存器的值不变。 3在命令行提示符状态下输入:G 2000 运行输入的程序。 4在命令行提示符状态下输入:R 屏幕显示:R0=0000 R1=5555 R2=RAM芯片可直接用A命令键入程序,但断电会丢失,要再次调试该程序必须重新输入,对那些较长的程序或经常用到的程序可通过交叉汇编,在上位机生成代码文件,每次加电启动后不用重新输入,只需通过PCEC将代码文件传送给下位机即可。2 将扩展的存储芯片组上面一组低位ROM芯片(HN58C65P_15)右侧标有/CS的插针用跳线帽短接,下面一组高位ROM芯片(HN58C65P_15)右侧标有/CS的圆孔针与标有MEM /CS的一排圆孔针中地址为40005FFF的一个用导线相连。这表示扩展的ROM的内存地址是从4000H开始,可用空间是4000H5FFFH,用户可在这个范围内输入程序或改变内存单元的值。注意:每个ROM插座的两边都有4组插针,要根据选用的存储器型号,正确连接。 在准备知识图所示的图中,第2片和第5片(中间的HN58C65P_15)是扩展内存,仔细对照实验箱,

温馨提示

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

评论

0/150

提交评论