西北农林科技大学
信息工程学院
计算机组成原理实习报告
班级?信息管理与信息系统?
年级??? 11级2班
姓名?? 刘 佳??
学号?? 2011013316??
实验一 基础汇编语言程序设计
实验目的
1.学习和了解TEC-XP教学实验系统监控命令的用法;
2.学习和了解TEC-XP教学实验系统的指令系统;
3.学习简单的TEC-XP教学实验系统汇编程序设计。
实验内容
1.学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC。
2.使用监控程序R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。
实验步骤
1.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙ ;显示寄存器的内容
注:寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
R R0↙ ;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有—个或数个空格
主机显示:
寄存器原值:_
在后面输入新的值0036
再用R命令显示寄存器内容,则R0的内容变为0036。
2.用D命令显示存储器内容
在命令行提示符状态下输入:
D 2000↙
会显示从2000H地址开始的连续128个字的内容;
连续使用不带参数的D命令,起始地址会自动加128(即80H)。
3.用E命令修改存储器内容
在命令行提示符状态下输入:
E 2000↙
屏幕显示:
2000 地址单元的原有内容:光标在此闪烁等待输入
输入0000
依次改变地址单元2001~2005的内容为:1111 2222 3333 4444 5555
注意:用E命令连续修改内存单元的值时,每修改完—个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。
4.用D命令显示这几个单元的内容
D 2000↙
可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。
5.用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。
1)在命令行提示符状态下输入:
A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始
屏幕将显示:
2000:
输入如下形式的程序:
2000:MVRD R0,AAAA ;MVRD与R0之间只有一个空格,其他指令相同
2002:MVRD R1,5555
2004:ADD R0,R1
2005:AND R0,R1
2006:RET ;程序的最后一个语句,必须为RET指令
2007:↙(直接敲回车键,结束A命令输入程序的操作过程)
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。
2)用U命令反汇编刚输入的程序
在命令行提示符状态下输入:
U 2000↙
在相应的地址会得到输入的指令及其操作码。
注:连续使用不带参数的U命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。
3)用G命令运行前面刚键入的源程序
G 2000↙
程序运行结束后,观察程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。
4)用P或T命令,单步执行这段程序,观察指令执行结果
在命令行提示符状态下输入:
T 2000↙
T↙
T↙
T↙
用P命令执行过程同上。
注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
6.举例编写汇编程序,用“A”命令输入,运行并观察结果
1)例1:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。
<1>在命令行提示符状态下输入:
A 2000↙
屏幕将显示:
2000:
输入如下形式的程序:
2000:IN 81 ;判断键盘上是否按了一个键
2001:SHR R0 ;即串行口是否有了输入的字符
2002:SHR R0
2003:JRNC 2000 ;未输入完则循环测试
2004:IN 80 ;接收该字符
2005:OUT 80 ;在屏幕上输出该字符
2006:RET ;每个用户程序都必须用RET指令结束
2007:↙ ;(按回车键即结束输入过程)
注:在十六位机中,基本I/0接口的地址是确定的,数据口的地址为80H,状态口的地址为81H。
<2>用“G”命令运行程序
在命令行提