《2022年实验一基础汇编语言程序设计推荐 .pdf》由会员分享,可在线阅读,更多相关《2022年实验一基础汇编语言程序设计推荐 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一 基础汇编语言程序设计实验目的1学习和了解TEC-XP 十六位机监控命令的用法;2学习和了解TEC-XP 十六位机的指令系统;3学习简单的TEC-XP 十六位机汇编程序设计。实验内容1使用监控程序的R 命令显示修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用 G 命令连续运行该程序 ,用 T、P 命令单步运行并观察程序单步执行情况。3.学习联机使用TEC-XP 教学试验系统和仿真终端软件。实验要求在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。实验步骤1关闭电源,将大板上的COMl 口与 PC
2、机的串口相连;2接通电源,在PC 机上运行 PCEC.EXE 文件,设置所用PC 机的串口为“ l”或“ 2” ,其它的设置一般不用改动,直接回车即可;3置控制开关为001110(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“ 1” ,拨向下方表示“0” , “X”表示任意。其它实验相同;4按一下“ RESET”按键,再按一下“START” 按键,主机上显示:5用 R 命令查看寄存器内容或修改寄存器的内容1.用 R 命令查看寄存器或修改寄存器内容1)在命令行提示符状态下输入:R;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。名师资料总结 - - -精品资料
3、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 2)在命令行提示符状态下输入:R R0;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有个或数个空格主机显示:寄存器原值: xxxx 在后面输入新的值0036 再用 R 命令显示寄存器内容,则R0 的内容变为0036。2用 D 命令显示存储器内容在命令行提示符状态下输入:D 2000会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的D 命令,起始地址会自动加128(即
4、80H) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 3用 E 命令修改存储器内容在命令行提示符状态下输入:E 2000屏幕显示:2000 xxxx(地址单元的原有内容): (光标在此闪烁等待输入)输入 0000 (提示快捷使用方法:用E 命令连续修改内存单元的值时,每修改完个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改; 按回车键则退出E 命令。)依次改变地址单元20012005 的内容为: 1111 2
5、222 3333 4444 5555 用 D 命令显示这几个单元的内容D 2000可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。8用 A 命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。1)在命令行提示符状态下输入:A 2000;表示该程序从2000H(内存 RAM 区的起始地址)地址开始名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 屏幕将显示:
6、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)
7、用 G 命令运行前面刚键入的源程序G 2000程序运行结束后,观察程序的运行结果,记录寄存器R0 和 R1 的值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 4)用 P 或 T 命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T 2000TTT用 P 命令执行过程同上。注: T 总是执行单条指令,但执行P 命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。T、P 命令每次执行后均显示所有通用寄
8、存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。7举例编写汇编程序,用“A”命令输入,运行并观察结果1)例 1:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。在命令行提示符状态下输入:A 2000屏幕将显示:2000:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 输入如下形式的程序:2000: IN 81;判断键盘上是否按了一个键2001:SHR R0;即串行口是否有了输入的字符2002:SHR R0
9、2003:JRNC 2000;未输入完则循环测试2004: IN 80;接收该字符2005: OUT 80;在屏幕上输出该字符2006:RET;每个用户程序都必须用RET 指令结束2007:; (按回车键即结束输入过程)用“ G”命令运行程序在命令行提示符状态下输入:G 2000执行上面输入的程序。光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。该例建立了一个从主存2000H 地址开始的小程序。在这种方式下,所有的数字都约定使用16 进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET 汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只
10、有用RET 语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。2)例 2:设计一个小程序,用次数控制在终端屏幕上输出0到9十个数字符。在命令行提示符状态下输入:A 2020屏幕将显示:2020:从地址 2020H 开始输入下列程序:2020:MVRD R2,000A ;送入输出字符个数2022:MVRD R0,0030; “0”字符的 ASCII 码送寄存器R0 2024: OUT 80;输出保存在R0 低位字节的字符2025:DEC R2;输出字符个数减1,置状态位Z 2026:JRZ 202E;判 10 个字符输出完否,已完,则转到程序名师
11、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 结束处;R2=0,即 z=1 时,跳转到202E 2027: PUSH R0;未完,保存R0 的值到堆栈中,为了将状态字送入 R0 2028: IN 81;查询接口状态,判字符串行输出完成否,2029:SHR R0;R0 右移一位,将移出的一位送入状态位C 202A:JRNC 2028;未完成,则循环等待,C=0 时跳转202B:POP R0;已完成,准备输出下一字符并从堆栈恢复R0
12、 的值202C:INC R0;得到下一个要输出的字符R0+1 202D:JR 2024;转去输出字符,无条件转移202E:RET202F:该程序的执行码放在2020H 起始的连续内存区中。若送入源码的过程中有错,系统会进行提示,等待重新输入正确的汇编语句。输入过程中,在应输入语句的位置直接打回车则结束输入过程。用“ G”命令运行程序在命令行提示符状态下输入:G 2020记录执行结果:【思考题 】当把 IN 81 ,SHR R0,JNC 2028 三条语句换成3 个 MVRR R0,R0 语句,该程序执行过程会出现什么现象?试分析并实际执行一次。名师资料总结 - - -精品资料欢迎下载 - -
13、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 类似的,若要求在终端屏幕上输出A到 Z共 26 个英文字母,应如何修改例2 中给出的程序?请验证之。将程序写入实验报告。例 3:从键盘上连续打入多个属于0到 9的数字符并在屏幕上显示,遇非数字符结束输入过程。在命令行提示符状态下输入:A 2040屏幕将显示:2040:从地址 2040H 开始输入下列程序:(2040)MVRD R2,0030;用于判数字符的下界值,0的 ASCII 码MVRD R3,0039;用于判数字符的上界值
14、,9的 ASCII 码(2044)IN 81;判键盘上是否按了一个键SHR R0;即串行口是否有了输入的字符SHR R0 JRNC 2044;没有输入则循环测试IN 80;输入字符到R0 的低字节名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - MVRD R1,00FFAND R0,R1; R0 的高位字节内容清零(R0 的高字节可能原来的值不为零)CMP R0,R2 ;判输入字符字符0否,R0-R2,置状态位C JRNC 20
15、53;若为否,则转到程序结束处,C=0,跳转CMP R3,R0;判输入字符字符9否JRNC 2053;若为否,则转到程序结束处OUT 80;输出刚输入的数字符JMPA 2044;转去程序前边2044 处等待输入下一个字符,无条件跳到 2044 (2053)RET在命令行提示符状态下输入:G 2040光标闪烁等待键盘输入,若输入 09 十个数字符, 则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。【思考题】从2000H开始,一次存入0-9 、a-z 、A-Z。程序如下:A 2100 MVRD R10,000A MVRD R15,2000 MVRD R0,0030
16、 TABLE_10 STRR R15,R0 INC R15 INC R0 DEC R10 JRNZ TABLE_10 MVRD R10,001A MVRD R0,0041 TABLE_10 STRR R15,R0 INC R15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - INC R0 DEC R10 JRNZ TABLE_10 MVRD R10,001A MVRD R0,0061 TABLE_10 STRR R15,R0
17、 INC R15 INC R0 DEC R10 JRNZ TABLE_10 RET 执行结果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 实验总结:通过本次试验,学习了联机使用TEC-XP 试验系统和仿真终端软件PCEC。学习使用基本汇编语言及简单使用汇编语言编写程序,感受到了汇编语言的美妙。实验中遇到的问题有:程序执行前需要进行反汇编,但每次总是忘记,故造成实验结果错误。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -