实验二  基础汇编语言程序设计
实验目的:
1.学习和了解TEC—2000 十六位机监控命令的用法;
2.学习和了解TEC—2000 十六位机的指令系统;
3.学习简单的TEC—2000 十六位机汇编程序设计;
实验内容:
1.使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;
2.使用A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T 命令单步运行并观察程序单步执行情况;
实验要求
在使用该教学机之前,应先熟悉其的各个组成部分,及使用方法.
实验步骤
1.关闭电源,将大板上的COM1 口与PC 机的串口相连;
2.接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1, 其它的设置一般不用改动,直接回车即可;
3.置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”;
4.按一下“RESET ”按键,再按一下“START ”按键,主机上显示:
TEC—2000 CRT MONITOR
Version 2.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
依次改变地址单元2001~2005 的内容为: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 R0AAAA MVRD R0 之间有且只有一个空格,其他指令相同
2002: MVRD R15555
2004: ADD R0R1
2005: AND R0R1
2006: RET ;程序的最后一个语句,必须为RET 指令
2007: (直接敲回车键,结束A 命令输入程序的操作过程)
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。
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
做与运算,结果放在R0R0 的值变为5555H
P 命令执行过程同上。
注:T 总是执行单条指令,但执行P 命令时,则把每一个CALL 语句连同被调用的子程序一次执行完成。TP 命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
7.举例编写汇编程序用“A”命令输入,运行并观察结果
1)例子1:设计一个小程序从键盘上接收一个字符并在屏幕上输出显示该字符。
〈1〉 在命令行提示符状态下输入:
A 2000
屏幕将显示:
2000
输入如下形式的程序:
2000: IN 81 ;判键盘上是否按了一个键
2001SHR R0 ;即串行口是否有了输入的字符
2002SHR R0
2003:JRNC 2000 ;未输入完则循环测试
2004:IN 80 ;接收该字符
2005: OUT 80 ;在屏幕上输出显示字符‘6
2006: RET ;每个用户程序都必须用RET 指令结束
2007:↙ ;(按回车键即结束输入过程)
注:在十六位机中,基本I/O 接口的地址是确定的,数据口的的值为80,状态口的地址为81
〈2〉 用“G”命令运行程序
在命令行提示符状态下输入:
G 2000
执行上面输入的程序光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符.该例建立了一个从主存2000H 地址开始的小程序.在这种方式下所有的数字都约定使用16 进制数故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET 汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的, 用户程序只有用RET 语句
结束才能保证程序运行结束时能正确返回到监控程序的断点, 保证监控程序能继续控制教学机的运行过程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。