当前位置:文档之家› 【范文】-第二学期《计算机系统平台》实验指导书

【范文】-第二学期《计算机系统平台》实验指导书

2013-2014第二学期《计算机系统平台》实验指导书实验2 监控程序与汇编程序设计一、实验目的利用教学计算机的指令系统和所提供的汇编语言功能,学习监控程序使用和完成汇编语言程序设计的教学实验,初步掌握汇编程序设计和调试技术,并为学习计算机整机系统和各个部件的组成与功能打下一定的基础。

二、实验内容1. 熟悉教学实验机TEC-2008的组成结构和使用方法1)打开教学实验机的盖子,观察面板上的组成结构,找到运算器、存储器、控制器所在位置。

2)将教学实验机通过串口线连接到实验室的PC上,熟悉RESET和START键的使用,使得实验机与PC能够正常通讯。

3)进入教学计算机的PC仿真终端,练习采用PC作为教学机的终端完成数据的输入及显示。

4)启动并运行Tec2ksim模拟软件,启动监控程序,并练习录入示例程序及运行程序,观察结果,熟练TEC-2000模拟器的使用方法。

2. 输入并运行实验指导书中给出的程序例子,并理解程序的含义(210页~212页)3. 完成如下汇编程序设计题目用教学机的指令系统,设计一个程序,实现从键盘读入无符号的十六进制整型数据,到计算机内转换成16位二进制数并保存在一个寄存器中,再把这个字中的每一个二进制位的值输出到计算机的显示器屏幕上。

要求有适当的检查各种操作错误的能力,例如,输入的必须是4位十六进制的数字符,就是’0’-‘9’和’A’-‘F’;内部转换结果必须是正确的;输出的必定是16个二进制位的值,不能有丢失的情况出现。

整个程序约60-80行汇编语句。

示例如下:>g 20002F4B0010111101001011>g 20001A280001101000101000问题分解:1) 从键盘输入一个4位的十进制的数据,要求程序能够只接收‘0’~‘9’和’A’-‘F’范围内的键盘输入,如果正确则将字符显示在屏幕上,如果输入其他字符则没反应。

直到输入四位数字之后,程序自动退出。

例如:敲’0’后,屏幕显示0;敲‘x’,屏幕没变化;继续敲‘C’‘3’‘7’,屏幕显示‘0C37’,然后结束。

2) 设计程序,将某个寄存器的值以16个二进制位的形式显示在屏幕上。

例如,当前想要显示的寄存器的内容为“2F7B”,那么,运行你设计的程序之后,屏幕上输出“0010111101111011”3)在1)的基础上,将输入的4位十六进制数字字符转换为其对应的值保存在某寄存器中。

(提示,如输入2F4B后,保存到寄存器R1中,此时查看R1中的值应为2F4B)三、实验要求1. 观察实验内容中每个步骤操作的结果,并全程记录。

2. 完成实验报告的撰写,包括:实验目的、实验内容及步骤、实验结果、心得体会等部分。

四、实验指导1.教学计算机的实际组成和运行教学计算机由完整的硬件(运算器, 控制器, 存储器, 输入/ 输出接口和PC机仿真终端) 和软件(监控程序, PC机仿真终端程序, 交叉汇编程序) 两个子系统组成。

教学机与PC机通过各自的串行接口相互连接在一起。

教学机是主机,在本身的监控程序控制下运行自己的机器码程序,PC机以仿真终端方式作为教学机的输入输出设备,是通过运行PC机上的一个名字为/doc/cb96ae3e561252d380eb6ed6.html 仿真终端软件实现的。

为此,在系统加电之前,首先把连接两台计算机串行接口的通讯线接上,加电后在PC机上运行PCEC 程序,几次回车后就进入仿真终端状态;教学机正确设置功能开关的状态并加电,按RESET按钮后再按START 按钮,PC机屏幕上将出现教学机版权信息和监控命令提示符>,至此完成了系统启动过程,接下来可以使用监控命令运行教学计算机。

2.监控程序提供的操作命令TEC-2008教学计算机的操作与使用方法,主要指通过由监控程序提供的监控命令控制教学计算机的运行功能。

教学计算机处于正常运行状态时,它通过串行接口和PC机仿真终端相连接,通过常用的A、D 等监控命令可以进行联机操作。

这些监控命令,实现类似于PC机DOS 系统下的Debug程序的功能,包括A、U、G、T、P、R、D、E共8条命令,其格式为一个英文字母(大小写随意)表示的命令名、一个空格(可有可无)跟命令参数,下面分别介绍。

(1)单条汇编命令A格式:A [adr]这里的[adr] 表示此处的地址参数adr为任选项,由4位十六进制的数组成(下同),无此参数时,系统将取默认值。

功能:完成单条指令的汇编操作,把产生出来的教学计算机的执行代码放入对应的内存单元中。

命令名后的地址将是头一条汇编语句的执行码的内存单元地址。

每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下条汇编语句。

在应该输入汇编语句位置不给出汇编语句而直接回车,则结束A命令的运行过程。

(2)反汇编命令U格式:U [adr]功能:每次从指定的(或默认的)地址反汇编15条指令,并将结果显示在终端屏幕上。

反汇编完成之后,已将该命令的默认地址修改好。

接下来键入不带参数的U命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。

(3)执行程序命令G格式:G [adr]功能:从指定的(或默认的)地址连续地运行一个用户程序。

为了使程序执行后能返回监控程序,要求每个用户程序的最后一条指令一定为RET指令。

(4)、(5)单指令执行程序命令T和P格式:T [adr] 或P [adr]功能:从指定的(或PC中的当前地址)开始,单条指令方式执行用户程序。

通常情况下,每按一次T 或P将执行一条指令。

它们的区别是,T 总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。

每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。

(6)显示/修改寄存器内容命令R格式:R [寄存器名]功能:不带参数时,是显示全部寄存器及状态寄存器的值,并反汇编当前PC所指的一条指令,其中状态的显示格式为:“F=8位二进制数”,其各位的值分别对应于C、Z、V、S,P1、P0、0、0的值。

带参数时,如R R0表示要通过输入新值来修改相应寄存器R0的内容。

(7)显示存储器内容命令D格式:D [adr]功能:从指定(或默认的)地址开始显示内存128个存储字的内容。

连续的D命令,保证显示内容前后正确的连续关系,即每次执行D命令,会将默认的地址值加上128。

(8)修改存储器内容命令E格式:E [adr]功能:从指定(或默认的)地址逐字修改每个内存单元的内容,要求用户打入一个新的值,相应内存单元的内容将被修改。

接下来若打入空格键,可以开始修改下一个字,如打入的是回车键,则会结束E命令的执行过程。

使用上述8条命令,就可以完成所期望的操作。

用A命令键入教学计算机的一段汇编源程序,主要是向累加器送入数据和执行运算。

A 2000(回车);程序的起始地址选为16进制的2000(即内存RAM 区2000: M V R D R0,AA ;的起始地址),这里的数据均为16进制表示方式2002: M V R D R1,552004: A DD R0,R12005: A ND R0,R12006: R ET ;程序的最后一个语句,必须为RET指令2007:(直接敲回车键,结束A命令的输入程序的操作过程)用G命令运行前面刚输入的程序。

G 2000(回车)程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为55,说明程序运行正确。

当然也可以用P或T命令,逐条地执行这段程序中的指令,每执行一条指令就停下来,以便查看每一条指令的运行结果。

T 2000(回车)(结果从略,自己到实验中去看)T (回车)(结果从略,自己到实验中去看)继续打入T命令,直到程序结束(不能用P、T命令运行程序的最后那条指令RET)。

可以用R命令显示和修改有关寄存器的值,例如:R 不带参数则显示所有通用寄存器的值,状态字的值,下一条待执行指令的内容;带寄存器名参数时,是修改寄存器内容,例如,R R3 命令,回车后首先显示R3的原有内容,打入新值则完成替换。

可以用U命令对刚输入并运行过的程序进行反汇编。

U 2000(回车)(结果从略,自己到实验中去看)可以用D命令看从内存2000单元开始的这片存储区域中的内容。

D 2000(回车);(结果从略,自己到实验中去看)还可以用E命令向内存储器2100单元开始的一片存储区域键入一些数据,之后再用D命令查看:示例程序:例1:设计一个程序,在屏幕上输出显示一个字符‘6’。

A 2000 ; 地址从16进制的2000(内存RAM区的起始地址)开始2000: MVRD R0,0036 ; 把字符‘6’的ASCII码送入R02002: OUT 80 ; 在屏幕上显示字符‘6’,80为串行接口地址2003: RET ;每个用户程序都必须用RET指令结束2004:(按回车键即结束源程序的输入过程)例2:设计一个程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。

A 2020MVRD R2,000A ;送入输出字符的个数MVRD R0,0030 ;‘0’字符的ASCII码(2024) OUT 80 ;输出保存在R0低位字节的字符DEC R2 ;输出字符个数减1JRZ 202E ;判全部字符输出完否,已完,则结束程序PUSH R0 ;未完,保存R0 的值到堆栈中(2028) IN 81 ;读入串行接口的工作状态SHR R0 ;读入的状态字的最低位移入标志位C 中JRNC 2028 ;前一个字符输出完成否?未完则循环等待POP R0 ;已完成,从堆栈恢复R0 的值INC R0 ;得到下一个要输出的字符JR 2024 ;转去输出字符(202E) RET例3:从键盘上键入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇非数字符结束程序。

A 2040MVRD R2,0030 ;用于判数字符的下界值MVRD R3,0039 ;用于判数字符的上界值(2044) IN 81 ;判键盘上是否按了一个键SHR R0 ;即串行口是否有了输入的字符SHR R0JRNC 2044 ;尚没有输入则循环测试IN 80 ;把输入字符读到R0低位字节MVRD R1, 00FFAND R0, R1 ;将R0的高位字节清0CMP R0,R2 ;判输入的字符<字符‘0’否JRNC 2053 ;是,则转到程序结束处CMP R3,R0 ;判输入的字符>字符‘9’否JRNC 2053 ;是,则转到程序结束处OUT 80 ;输出刚输入的数字符JMPA 2044 ;转去程序前边2044 处等待输入下一个字符(2053) RET3.指令与系统级模拟软件这套软件系统用来模拟和仿真教学计算机的运行过程,仿真程序可在PC上运行,所以可以在自己的计算机上完成硬件模拟实验,同时,由于PC比教学计算机具备更完备的输出设备,可直观输出全部寄存器、标志位,甚至是存储单元的内容,方便大家掌握程序运行的全部结果和状态。

相关主题