2022年2022年基础汇编语言程序设计实验指导 2.pdf

上传人:C****o 文档编号:39694947 上传时间:2022-09-07 格式:PDF 页数:3 大小:42.17KB
返回 下载 相关 举报
2022年2022年基础汇编语言程序设计实验指导 2.pdf_第1页
第1页 / 共3页
2022年2022年基础汇编语言程序设计实验指导 2.pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《2022年2022年基础汇编语言程序设计实验指导 2.pdf》由会员分享,可在线阅读,更多相关《2022年2022年基础汇编语言程序设计实验指导 2.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基础汇编语言程序设计实验目的:1 学习和了解TEC-2000 十六位机监控命令的用法;2 学习和了解TEC-2000 十六位机的指令系统;3 学习简单的TEC-2000 十六位机汇编程序设计;实验内容:1 使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2 使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T 命令单步运行并观察程序单步执行情况;3、执行下面程序,查看执行过程。4、编写汇编语言程序,实现100(十进制)以内两位数的乘法运算,例如输入“8*9=”同步显示 8*9=后接着显示72,即“8*9=72”;

2、如果输入“12*12=”则显示“12*12=144”。实验要求在使用该教学机之前,应先熟悉其的各个组成部分,及使用方法。十六位教学机的汇编语言程序设计举例例子1:设计一个小程序,在屏幕上输出显示字符6。A 2000;地址从16 进制的2000(内存RAM 区的起始地址)开始2000:MVRD R0,0036;把字符 6的 ASCII 码送入R0 2002:OUT 80;在屏幕上输出显示字符6,80 为串行接口地址2003:RET;每个用户程序都必须用RET 指令结束2004:(按回车键即结束输入过程)这就建立了一个从主存2000h 地址开始的小程序。在这种方式下,所有的数字都约定使用16 进制

3、数,故数字后不用跟字符h。每个用户程序的最后一个语句一定为RET 汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。下面接着再给出几个小程序的例子。例子2:设计一个小程序,用次数控制在终端屏幕上输出0到 9十个数字符。A 2020 MVRD R2,00OA;送入输出字符个数MVRD R0,0030;“0”字符的ASCII 码送寄存器R0 OUT 80;输出保存在R0 低位字节的字符DEC R2;输出字符个数减1 JRZ 202E;判10 个字符输出完否,

4、已完,则转到程序结束处PUSH R0;未完,保存R0 的值到堆栈中(2028)IN 81;查询接口状态,判字符串行输出完成否,SHR R0;JRNC 2028;未完成,则循环等待名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -POP R0;已完成,准备输出下一字符并从堆栈恢复R0 的值INC R0;得到下一个要输出的字符JR 2024;转去输出字符(202E)RET 这个程序只使用基本汇编语句。理解中的一个难点,是程序当中判串行口是否完成一个字符的输出过程并循环等待的三个汇编语句。具体解释见有关串行接口讲解部分的内容。该程序的执行码放在2020 起始的连续内存区中。若送

5、入源码的过程中有错,系统会进行提示,等待重新打入正确汇编语句。在输入过程中,在应打入语句的位置直接打回车则结束输入过程。接下来可用G 2020 命令运行该程序。思考题:当把IN 01,SHR R0,JNC,2029 三个语句换成4 个 MOV R0,R0 语句,该程序执行过程会出现什么现象?试分析并实际执行一次。类似的,若要求在终端屏幕上输出A 到Z共26 个英文字母,应如何修改例1 中给出的程序?请验证之。例子 3:从键盘上连续打入多个属于0到9的数字符并在屏幕上显示,遇非数字符结束输入。A 2040(2040)MVRD R2,0030;用于判数字符的下界值MVRD R3,0039;用于判数

6、字符的上界值(2044)IN 81;判键盘上是否按了一个键,SHR R0;即串行口是否有了输入的字符SHR R0 JRNC 2044;没有输入则循环测试IN 80;输入字符到R0 MVRD R1,00FF AND R0,R1;清零R0 的高位字节内容CMP R0,R2;判输入字符字符0否JRNC 2053;为否,则转到程序结束处CMP R0,R3;判输入字符字符9否JRC 2053;为否,则转到程序结束处OUT 80;输出刚输入的数字符JMPA 2044;转去程序前边2044 处等待输入下一个字符(2053)RET 思考题,本程序中为什么不必判别串行口输出完成否?设计打入 AZ和09的程序,遇

7、其它字符结束输入过程。从地址2040 开始输入下列程序:例子4:计算1 到 10 的累加和。A 2060(2060)MVRD R1,0000;置累加和的初值为0 MVRD R2,00OA;最大的加数MVRD R3,0000(2066)INC R3;得到下一个参加累加的数ADD R1,R3;累加计算名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -CMP R3,R2;判是否累加完JRNZ 2066;未完,开始下一轮累加RET 运行过后,可以用R 命令看R1 中的累加结果。例子5:设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符,将其显示到显示器的屏幕上,转换

8、为小写字母后再写回存储器原存储区域。E 20F0(送入将被显示的6 个字符 AF到内存20F0 开始的存储区域中)0041 0042 0043 0044 0045 0046 A 2080(2080)MVRD R3,0006;指定被读数据的个数MVRD R2,20F0;指定被读、写数据内存区首地址(2084)LDRR R0,R2;读内存中的一个字符到R0 寄存器MVRD R8,2100;指定子程序地址为2100 CALR R8;调用子程序,完成显示、转换并写回的功能DEC R3;检查输出的字符个数JRZ 208C;完成输出则结束程序的执行过程INC R2;未完成,修改内存地址JR 2084;转移

9、到程序的2086 处,循环执行规定的处理(208C)RET A 2100;输入用到的子程序到内存2100 开始的存储区(2100)OUT 80;输出保存在R0 寄存器中的字符MVRD R1,0020 ADD R0,R1;将保存在R0 中的大写字母转换为小写字母STRR R2,R0;写R0 中的字符到内存,地址同LOD 所用的地址(2105)IN 81;测试串行接口是否完成输出过程SHR R0 JRNC 2105;未完成输出过程则循环测试RET;结束子程序执行过程,返回主程序运行过程中,可以直接看到屏幕上显示的内容,运行过后,再用 D 20F0 看内存的20F0 区域中保存的运行结果:0061

10、0062 0063 0064 0065 0066 上述5 个例子,都是用监控程序的A 命令完成输入源汇编程序的。在涉及到汇编语句标号的地方,不能用符号表示,只能在指令中使用绝对地址。使用内存中的数据,也由程序员给出数据在内存中的绝对地址。显而易见,对这样的极短小程序矛盾并不突出,但很容易想到,对很大的程序,一定会有较大的困难。在用A 命令输入汇编源语句的过程中,有一定用机经验的人,常常抱怨A 命令中未提供适当的编辑功能,这并不是设计者的疏漏,因为我们并不准备在这种操作方式下支持设计较长的程序,这种工作应转到提供了交叉汇编程序的PC 机上去完成。相反的情况是,输入上述一些小程序,用监控程序的A 命令完成,往往比用交叉汇编完成更简捷。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁