实验一TEC-XP+用法与汇编语言程序设计_第1页
实验一TEC-XP+用法与汇编语言程序设计_第2页
实验一TEC-XP+用法与汇编语言程序设计_第3页
实验一TEC-XP+用法与汇编语言程序设计_第4页
实验一TEC-XP+用法与汇编语言程序设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京工程学院计算机工程学院计算机组成与结构实验报告书实验学生班级 K网络工程121 实验学生姓名 王云峰 学 号 240121525 实 验 地 点 信息楼 A115 实验一 TEC-XP+用法与汇编语言程序设计同组同学 李翔240121515 实验日期 12周 周五 实验仪器号 16 一、 实验目的1 了解TEC-XP+机的基本结构,掌握各开关、指示灯、按键的功能,建立对TEC-XP+机的感性认识。2 掌握TEC-XP+机与PC机联机通讯的方法。3 了解TEC-XP+机的指令系统及寻址方式;掌握TEC-XP+机的汇编语言程序设计方法。4 掌握TEC-XP+机汇编语言程序的调试方法;掌握常用监

2、控命令的格式、功能及用法。二、 实验内容1 了解TEC-XP+机的基本结构,熟悉各开关、指示灯、按键的功能。2 完成TEC-XP+机与PC机的联机通讯。3 调试几个汇编语言源程序,修改错误直至获得正确运行结果。4 记录运行结果,并读懂实验程序。3、 实验步骤与结果例1:设计一个程序,在屏幕上输出显示字符6。A 2000 ;地址从16进制的2000(内存RAM区的起始地址)开始2000: MVRD R0,0036 ;把字符6的ASCII码送入R02002: OUT 80 ;在屏幕上输出显示字符6,80为串行接口地址2003: RET ;每个用户程序都必须用RET指令结束2004:(按回车键即结束

3、源程序的输入过程)这就建立了一个从主存2000h地址开始的小程序。在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符h。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证用户程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。例2:设计一个程序,用次数控制在终端屏幕上输出0到9十个数字符。A 2020MVRD R2,00OA ;送入输出字符个数MVRD R0,0030 ;0字符的ASCII码OUT 80 ;输出保存在R0低位字节的字符DEC R2 ;输出

4、字符个数减1JRZ 202E;判10个字符输出完否,已完,则转移到程序结束处PUSH R0 ;未完,保存R0的值到堆栈中(2028)IN 81 ;查询接口状态,判字符串行输出完成否SHR R0 ;JRNC 2028;未完成,则循环等待POP R0 ;已完成,准备继续输出下一字符,从堆栈恢复R0的值INC R0 ;得到下一个要输出的字符JR 2024 ;转去输出字符(202E)RET这个程序只使用基本汇编语句。理解中的一个难点,是程序当中判串行口是否完成一个字符的输出过程并循环等待的三个汇编语句。具体解释见教材计算机组成与设计中的有关串行接口的内容。该程序的执行码放在2020起始的连续内存区中。

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

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

7、程序,遇其它字符结束输入过程。例4:计算1到10的累加和。A 2060MVRDR1,0000 ;置累加和的初值为0MVRD R2,00OA ;最大的加数MVRDR3,0000 (2066)INC R3 ;得到下一个参加累加的数ADD R1,R3 ;累加计算CMP R3,R2 ;判断是否累加完JRNZ 2066 ;未完,开始下一轮累加RET运行过后,可以用R命令看R1中的累加结果。例5:设计一个有读写内存和子程序调用指令的程序,功能是读出指定内存中的大写字母字符,将其显示到屏幕上,转换为小写字母后再写回存储器原存储区域。E 20F0 (送入将被显示的6个字符AF到内存20F0开始的存储区域中)4

8、1 42 43 44 45 46140 A 2080MVRDR3,0006 ;指定被读数据的个数MVRDR2,20F0;指定被读、写数据内存区首地址(2084)LDRR R0,R2;读内存中的一个字符到R0寄存器 CALA 2100 ; 指定子程序地址为2100调用子程序,完成显示、转换并写回的功能DECR3 ;检查输出的字符个数JRZ 208C;完成输出则结束程序的执行过程INC R2;未完成,修改内存地址JR 2084;转移到程序的2084处,循环执行规定的处理(208C)RETA 2100 ;输入用到的子程序到内存2100开始的存储区OUT 80 ;输出保存在R0寄存器中的字符MVRD

9、R1,0020 ;转换保存在R0中的大写字母为小写字母ADD R0,R1STRRR2,R0 ;写R0中的字符到内存,地址同LDRR所用的地址(2105)IN 81 ;测试串行接口是否完成输出过程SHR R0JRNC 2105 ;未完成输出过程则循环测试RET ;结束子程序执行过程,返回主程序运行过程中,可以直接看到屏幕上显示的内容,运行过后,再用D 20F0命令看内存的20F0区域中保存的运行结果:0061 00620063 0064 0065 0066四、实验分析与思考1. 注释实验程序,并指出操作数的寻址方式。(相同的寻址方式只需说明一次)实验程序注释已注于 三、 实验步骤上1:设计一个程

10、序,在屏幕上输出显示字符6。A 2000 ; 2000: MVRD R0,0036 ;立即数寻址2002: OUT 80 ;直接寻址2003: RET ; 2004:2:设计一个程序,用次数控制在终端屏幕上输出0到9十个数字符。A 2020MVRD R2,00OA ;立即数寻址MVRD R0,0030 ;立即数寻址OUT 80 ;DEC R2 ;JRZ 202E ; PUSH R0 ;(2028)IN 81 ; SHR R0 ;JRNC 2028 ;POP R0 ; INC R0 ;JR 2024 ; (202E)RET3:从键盘上连续键入多个属于0到9的数字符并在屏幕上显示,遇非数字符结束程

11、序。从地址2040 开始输入下列程序:A 2040MVRD R2,0030 ;立即数寻址MVRD R3,0039 ;立即数寻址(2044)IN 81 ; SHR R0 ;SHR R0JRNC 2044 ; IN 80 ;MVRD R1, 00FF立即数寻址AND R0, R1 ;立即数寻址CMP R0, R2 ; JRNC 2053 ; CMP R3, R0 ;寄存器寻址JRNC 2053 ; OUT 80 ;JMPA 2044 ;直接地址寻址(2053)RET4:计算1 到10 的累加和。A 2060MVRD R1,0000 ;立即数寻址 MVRD R2,00OA ;立即数寻址MVRD R3

12、,0000立即数寻址(2066)INC R3 ;ADD R1, R3 ;寄存器寻址CMP R3, R2 ;、JRNZ 2066 ; RET5:设计一个有读写内存和子程序调用指令的程序,功能是读出指定内存中的大写字母字符,将其显示到屏幕上,转换为小写字母后再写回存储器原存储区域。E 20F0 (送入将被显示的6 个字符AF到内存20F0 开始的存储区域中)41 42 43 44 45 46A 2080MVRD R3, 0006 ;立即数寻址MVRD R9, 20F0 ;立即数寻址(2084)LDRR R0, R2 ;寄存器间接寻址MVRD R8, 2100 ;立即数寻址CALR 2100 ;直接

13、寻址 DEC R3 ; JRZ 208C ; INC R2 ;JR 2084 ; (208C)RETA 2100 ; OUT 80 ;MVRD R1, 0020 ;立即数寻址ADD R0, R1 ;寄存器寻址STRR R2,R0 ;寄存器间接寻址(2105)IN 81 ;SHR R0JRNC2. 如何在PC机显示器上显示字符,如何获得PC机键盘键入的字符?说明端口80H和81H的作用。把计算机接入教学机系统(TEC-2000),而教学机拥有监控程序,当教学机被正常设置并加电启动之后,首件事情是从内存0地址开始启动监控程序,也就是使监控程序进入运行状态,此后便可以从键盘打入监控程序的命令并使其执

14、行,达到显示字符的目的。由于PC机与教学机已经相联,监控程序已经正常运行,通过命令,将字符的ASCLL码键入到寄存器中(例如MVRD R0,0036),然后输出显示字符即可(例如 OUT 80 注: 80为串行接口地址 ),然后RET结束,然后打入监控程序的命令(例如G2000)即可显示字符80H和81H是串行接口的I/O(输入/输出)端口地址I/O接口的功能是负责实现CPU通过系统总线把I/O电路和 外围设备联系在一起因此,作用即是将教学机TEC-2000与PC机相联系起来的,输出保存在寄存器当中的字符。3. 解释监控命令:A、U、D、R、G、T、P、E。单条汇编命令A格式:A adr这里的

15、adr表示A命令的地址参数,用 将adr括起来,表示此处的adr为任选项,可有可无,无此参数时,系统将取默认值。该规则亦适用于下述对各命令的说明。功能:完成单条指令汇编操作,把产生出来的教学机的指令代码放入对应的内存单元中。命令名后的地址将是存放头一条汇编语句的指令码的内存单元地址。每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下一条汇编语句。在应该输入汇编语句时,不给出汇编语句而直接回车,则结束A命令的运行过程。反汇编命令U格式:U adr功能:每次从指定的(或默认的)地址反汇编15条指令,并将结果显示在终端屏幕上。反汇编完成之后, 已将该命令的默认地址修改好。接下来再键入不带参数

16、的U命令, 保证接着从上一次反汇编过的最后一条语句之后继续反汇编。显示存储器内容命令D格式:D adr功能:从指定(或默认)地址开始显示内存120个存储字的内容。显示的格式:最左一列4位的16进制数字,是本行中第一个字的内存地址;接下来的8列是4位的16进制的8个连续内存字的内容;最右一列是每个字节所对应的ASCII字符。当其值不为可显示字符的ASCII码值时,用一个“.”字符标记。连续的D命令,保证所显示内容前后正确的连续关系,即每次执行D命令之后,会将默认的地址值加上120。TEC-XP计原16机通常采用字地址方式按字读写内存。D命令执行过程中,可以用键盘上的ESC终止其显示过程。打了其他

17、键将会暂停显示过程,再一次敲击任一键则继续显示尚未显示完的剩余内容。显示修改寄存器内容的命令R格式:R reg,reg为一个寄存器名(R0-R15),是任选参数。功能:当R命令不带寄存器名参数时,显示全部寄存器和状态寄存器的值,并反汇编当前PC所指向的一条指令,其中状态的显示格式为:“F=8位二进制数”,其各位的值分别对应于C、Z、V、S,P1、P0(中断优先级)的值,最后2位是00。当R命令带有寄存器名参数时,是要实现修改一个寄存器内容的操作,首先显示出该寄存器的现有值,若要修改这个值则打入新值并回车,不输入新的值就直接回车,该寄存器内容将保持不变。执行用户程序命令G格式;G adr功能:从

18、指定的(或默认的)地址运行一个用户程序。为了使程序执行后能正确地返回监控程序,要求每个程序的最后一条指令一定为RET指令,以便通过该指令从堆栈中取得监控程序为运行用户程序而产生并保存的一个断点地址。每次执行后均显示所有通用寄存器和状态寄存器的内容,并反汇编出下一条将要执行的指令。单指令执行程序命令T和P格式:P adrT adr功能:从指定地址(或PC中的当前地址)开始单条指令方式执行用户程序。通常情况下,每执行一次T或P命令将只执行一条指令。T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成,其目的是在调试一些较大规模的程序时,如果子程序已经正确,重点调试的是主调用程序,则在遇到每个子程序调用语句时,CALL语句连同被调用的子程序一次运行完成,避免反反复复地以单指令方式运行已经证明是正确的子程序的每一个语句。由于P和T命令是通过在程序中设置断点来实现的,而在ROM区不支持写入断点内容,故不能用它们来执行固化在ROM区中的监控程序,或其他的用户程序。每次执行后均显示所有通用寄存器和状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论