计算机 学院 软件工程 专业
班___组、学号 3111111111
姓名
协作者___________ 教师评定
实验题目
基础汇编语言程序设计
一、实验目的:
1、学习和了解 TEC-XP+教学实验系统监控命令的用法;
2、学习和了解 TEC-XP+教学实验系统的指令系统;
3、学习简单的 TEC-XP+教学实验系统汇编语言程序。
二、实验设备与器材
1、工作良好的 PC 机;
2、TEC-XP+教学实验系统和仿真终端软件 PCEC。
三、实验说明和原理:
实验原理:汇编语言能够直接控制底层硬件的状态,通过简单的汇编指令查
看、显示、修改寄存器、存储器等硬件内容。
实验箱正如一集成的开发板,而我们正是通过基础的汇编语言对开发板进行
使用和学习,过程中我们不仅需要运用汇编语言的知识,还需要结合数字逻辑中
所学的关于存储器、触发器等基本器件的原理,通过串口通讯,实现程序的烧录,
实验箱与 PC 端的通讯。
四、实验内容:
1、学习联机使用 TEC-XP+教学实验系统和仿真终端软件 PCEC;
2、学习使用 WINDOWS 界面的串口通讯软件;
3、使用监控程序的 R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命
令修改存储器内容;
4、使用 A 命令编写一小段汇编程序,U 命令反汇编刚输入的程序,用 G 命令连
续运行改程序,用 T、P 命令单步运行并观察程序单步执行的情况。
1
五、实验步骤:
一、实验具体操作步骤:
1、准备一台串口工作良好的 PC 机;
2、将 TEC-XP 放在实验台上,打开实验箱的盖子,确定电源处于断开状态;
3、将黑色电源线一端接 220V 交流电源,另一端插在 TEC--XP 试验箱电源插座
上;
4、取出通讯线,将通信线的 9 芯插头接在试验箱的串口“COM1”或“COM2”
上,另一端接到 PC 机的串口上;
5、将 TEC-XP 实验系统左下方的 6 个黑色控制器开关置为 001100,,控制开关
的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方表示“0”,“x”
表示任意,其他实验相同;
6、打开电源,船形开关和 5v 电源指示灯亮。
7、在 PC 机上运行 PCEC16.EXE 文件,直接回车。
8、按一下“RESET”按键,再按一下“START”按键在主机上显示:
二、实验注意事项:
1、连接电源线和通讯前 TEC-XP+实验系统的电源开关一定要处于断开状态,否
则可能会对 TEC-XP+实验系统上的芯片和 PC 机的串口造成伤害;
2、六个黑色控制开关的功能示意图如下:
单步 手动置指令
组合逻辑
联机
8 位
FPGA
连续 从内存读取指令 微程序
脱机
16 位
MACH
上面
下面
2
3、几种常见的工作方式(开关拨到上方表示为 1,拨到下方为 0;)
工作方式
6 个拨动开关
00110
连续运行程序、组合逻辑控制器、联机、16 位机
连续运行程序、微程序控制器、联机、16 位机
00010
单步、手动置指令、组合逻辑控制器、联机、16 位机 11110
11010
单步、手动置指令、微程序控制器、联机、16 位机
16 位机、脱机运算器实验
1XX00
连续运行程序、联机、16 位机、FPGA
00XX101
三、仿真终端软件的操作成功运行 PCEC16.EXE 的界面
四、实验示例:
1.用 R 命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙
;显示寄存器的内容
注:寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
R R0↙ ;修改寄存器 R0 的内容,被修改的寄存器与所赋值之间可以无
空格,也可由一个或数个空格
主机显示:
寄存器原值:_
在该提示符下输入新的值 0036
再用 R 命令显示寄存器的内容,则 R0 的内容变为 0036。
测试结果如下图:
3
2.用 D 命令显示存储器内容
在命令行提示符状态下输入:
D 2000↙
会显示从 2000H 地址开始的连续 128 个字的内容;
连续使用不带参数的 D 命令,起始地址会自动加 128(即 80H)。
测试结果如下图:
3.用命令修改存储器内容
在命令提示符状态下输入:
E 2000↙
屏幕显示:
2000 地址单元的原有内容:光标闪烁等待输入
4
输入 0000
依次改变地址单元 2001~2005 的内容为:1111 2222 3333 4444 5555
注意:用 E 命令连续修改内存单元的值时,每修改完一个,按一下空格
键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出 E
命令。
5.用 A 命令花不如一段汇编源程序,主要是想累加器送入数据和进行运算,
执行程序并观察运行结果。
1)在命令行提示符状态下输入:
A 2000↙:表示该程序从 2000H(内存 RAM 区的起始地址)地址开始
屏幕将显示:
2000:
输入如下形式的程序:
2000:MVRD R0,AAAA ;MVRD 与 R0 之间有且只有一个空格,其他指令相
同
2002:MVRD R1,5555
2004:ADD RO,R1
2005:AND R0,R1
2006:RET
;程序的最后一个语句,必须为 RET 指令
2007:(直接敲回车键,结束 A 命令输入程序的操作过程)
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新
5
输入正确的指令即可。
2)用 U 命令反汇编刚输入的程序
在命令行提示符状态下输入:
U 2000↙
在相应的地址会得到输入的指令及其操作码
注:连续使用不带参数的 U 命令时,将从上一次反汇编的最后一条语句
之后接着继续反汇编。
3)用 G 命令运行前面键入的源程序
G 2000↙
程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,
其中 R0 和 R1 的值均为 5555H,说明程序运行正确。
4)用 P 或 T 命令,但不执行这段程序,观察指令执行结果
在命令行提示符状态下输入:
T 2000↙
寄存器 R0 被赋值为 AAAAH
T↙
寄存器 R1 被赋值为 5555H
T↙
做加法运算,和放在 R0,R0 的值变为 FFFFH
T↙
做与运算,结果放在 R0,R0 的值变为 5555H
用 P 命令执行过程同上
注:T 总是执行单条指令,但执行 P 命令时,则把每一个 CALL 语句连同被
调用的子程序依次执行完成。T,P 命令每次执行后均显示所由通用寄存
器及状态寄存器的内容,并反汇编出下一条将要执行的指令。运行结果
如下:
6
7
【例 1】设计一个程序,从键盘上接收一个字符并在屏幕上显示该字符。
测试如下图:
【例 2】设计一个程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。
测试如下图:
【例 4】计算 1 到 10 的累加和。
测试如下图:
六、思考题:
【例 2】若把 IN 81,SHR R0,JRNC 2028 三个语句换成 3 个 MVRR R0,R0 语句,该程序
执行过程会出现什么现象?
答:改为三个MVRD R0,R0语句后,用G命令运行的结果:
8