《汇编语言程序设计》.doc

上传人:re****.1 文档编号:560907808 上传时间:2023-05-28 格式:DOC 页数:7 大小:55.01KB
返回 下载 相关 举报
《汇编语言程序设计》.doc_第1页
第1页 / 共7页
《汇编语言程序设计》.doc_第2页
第2页 / 共7页
《汇编语言程序设计》.doc_第3页
第3页 / 共7页
《汇编语言程序设计》.doc_第4页
第4页 / 共7页
《汇编语言程序设计》.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《汇编语言程序设计》.doc》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》.doc(7页珍藏版)》请在金锄头文库上搜索。

1、 计算机组成原理实验手册 浙江广播电视大学计算机科学系汇编语言程序设计实验一实验目的: 1. 学习和了解TEC 3 机监控命令的用法;2. 学习和了解TEC 3 机的指令系统:3. 学习简单的解TEC 3 机的汇编程序设计实验内容: 用教学机上已实现的指令编写汇编程序,运行并观察运行结果 使用监控程序的 R 命令显示修改寄存器内容:使用 D 命令显示存储器内容,使用 E 修改存储器内容:使用A命令写-小段汇编程序, U 命令反汇编刚输入的程序;用 G 命令连续运行该程序,用 T,P 命令单步运行并观察程序单步执行情况;实验要求在使用该实验台之前,应先熟悉实验台的各个组成部分及其使用方法。实验步

2、骤1.确保两个红色微型开关左侧的短路子处于断开状态( 短接子被拔下来 ) ; 2.在关闭教学机电源情况下,将大板上的 COM2 口 (左侧的一个) 与PC机的串口相连; 3.接电源,在pc上运行 PCEC.EXE 文件,设置所用pc机的串口为 1 或 2 。 其它的设置一般不用改动,直接回车即可: 4.置控制开关为 000(连续、正常运行、助合逻辑) ,开关拨向上方表示“ 1 ”, 拨向下方表示 0 , X 表示任意其它实验相同;5.按下重新设定了的同时按下步骤按钮,松开后再按一下步骤按钮,主机上显示: TEC 3 Monitor Ver 3 1 -by wei Xiaoliang Tsing

3、hua Computor 中心, 2001 , C6 ( 教学计算机已处于正常运行状态,等待输入监控命令) 6. 用 R 命令查看寄存器内容或修改寄存器的内容 l 在命令行提示符状态下输入: R :显示寄存器的内容 执行后显示 12个寄存器的内容及状态标志。 例如,执行结果为: R0=2FF R1=FF R2FF R3=FF R4=00 R5=20R6=00 R7 26 R8=FF R9= FF R10=FF R1= FF 州=00 注:这些显示结果是初始化后的寄存器的内容,运行程序或执行命令后寄存器的内容会发生变化 2在命令行提示行状态下输入:R R036 ;修改寄存器 R0 的内容,修改的

4、寄存器与所赋值之间不能有空格,否则系统会给出错误提示再用 R 命令显示寄存器内容:则 R0 的内容变为367用 D 命令显示存储器内容 在命令行提示符状态下输入: D 2000 : 会显示从 2000 地址开始的 128 个存储字的内容连续的 D 命令,保证显示内容前后正确的连续关系,即每次执行 D 命令,会将默认的地址值加上 128 8用 E 命令修改存储器内容 在命令行提示符状态下输入: E 2000 :用户可以从地址 2000 开始逐字节修改每个内存单元的内容 按如下格式输入: 2000: 66 2001: 77 2002: 88 用 D 命令显示着几个单元的内容 D 2000 : 可以

5、看到这三个地址单元的内容变为 66 、 77 、88 9用A命令键入教学计算机的一段汇编源程序,主要是向累加器送入数据和执行运算,执行程序并观察运行结果注意:在键入命令时, A , U , G , D , E , T , P 命令与其后所接的地址之间要加一个 (且只能一个) 空格;在输入指令时也要注意这点,若输入有误,在没有按回车之前,只需要将光标移到出错的位置,重新输入正确内容;若已回车,则键入命令出错地址并回车,系统给出出错地址,在该地址重新输入。 1)在命令行提示符状态下输入:A 2000 ;表示该程序从 16 进制的 2000(内存随机存取储存器区的起始地址) 地址开始 屏幕将显示:

6、2000: 之后输入如下形式的程序: 2000: MVD R0 AA ; MVD 与 R0 之间只有一个空格,其他指令相同 2002: MVD R1 ,55 2004: ADD R0 ,R1 2005: AND R0 ,R12006: RET ;程序的最后一个语句,必须为RET指令2007:(直接敲回车键,结束A命令的输入程序的操作过程) 2)用 U 命令反汇编刚输入的程序 在命令行提示符状态下输入: U 2000 : 在相应的地址会得到输入的指令及其操作码 注:U 命令一次反汇编十五条指令,接下来键入不带参数的 U 命令时,将接着从上一次反汇编的最后一条语句之后继续反汇编。 3)用 G 命令

7、运行前面刚键入源程序。 G 2000 :程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和 R1的值均为 55 ,说明程序运行正确 4)用 P 或 T 命令,让这段程序单步执行,观察指令执行结果 在命令行提示符状态下输入: T 2000:寄存器 R0 技赋值为 AA T :寄存器 Rl 被赋值为55T :做加法运算,和放在R0,R0的值变为 FFT :做与运算,结果放在R0,R0的值变为55 用 P 命令执行过程同上 注: T 命令总是执行单条指令,但执行 P 命令时,则把每一个 CAL 上语句连同被调用的子程序一次执行完成。T,P 命令每次执行后均显示所有通用寄存器及状

8、态寄存器的内容,并反汇编出下一条将要执行的指令举例编写汇编程序,用 A 命令输入,运行并观察结果 例子 1 :设计一个小程序。在屏幕上输出显示字符 6 1)在命令行提示符状态下输入: A 2000 ;表示该程序从 16 进制的 2000(内存 RAM 区的起始地址) 地址开始屏幕将显示:2000: 之后输入如下形式的程序: 2000: MVD R0, 36 ;把字符 6的美国信息交换标准代码送入R0 2002: OUT 00 :输出字符 6 到屏幕上, 00 为串行口的端口地址 2003: RET ;每个用户程序都必须用 RET 指令结束 2004: ;(按回车键即结束输入过程) 2)用 G

9、命令运行程序 在命令行提示符状态下输入: G 2000 执行上面输入的程序 显示结果为: 6 R0=36 R1=R11=:STATE=: 2000: MVD Ro ,36 该例建立了一个从主存 2000h地址开始的小程序。在这种方式下,所有的数字都约定使用 16 进制数,故数字后不用跟字符 h 。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验考的程序投入运行的 ,用户程序只有用RET 语句结束,才能保证程序运行结束,才能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。下面接着再给出几个小程序的例子例子2:设计一个小程序,用次数控制在

10、终端屏幕上输出, 0 ,到 9 ,十个数字符1在命令行提示符状态下输入: A 2020 屏幕将显示: 2020, 从地址 2020 开始输入下列程序: 2020: MVD R2,0A ;送入输出字符个数(十进制的数值10) 2022: MVD R0,30 ;送 0 字符的ASCII 码到R0 2024: 0UT 00 ;输出保存在R0中的字符 2025: DEC R2 ;输出字符个数减1 2026: JZ 2031 ; 判 10 个字符输出完否,已完,则转移到程序结束处 2028: PUSH Ro ;未完,保存 R0 的值到堆栈中 2029: IN 01 ;查询接口状态,判字符串行输出完成否

11、, 202: SHR R0 : 2028:JNC,2029 ;未完成则循环等持 202D :POP R0 :已完成,准备继续输出下一字符 ,从堆栈恢复R0的值 202E:INC RO ;得到下一个要输出的字符 202F JR 2024 ;转回去继续输出字符 2031:RET 该程序的执行码放在 2020 起始的连续内存区中。若送入源码的过程中有错,系统会进行提示,等待重新打入正确汇编语句。在输入过程中,在应打入语句的位置直接打回车则结束输入过程2用 G 命令运行程序 在命令行提示符状态下输入: G 2020 执行上面输入的程序 执行结果为 0123456789 R0 :39 R1=R2=00

12、R3 2020: MVD R2 , 0A作业:当把IN 01 , SHR R0,JNC 2029 三个语句换成 4 个 MOV Ro , R0 语句,该程序执行过程会出现什么现象? 试分析并实际执行一次以观察运行结果。 提示:该程序改变这三条语句后,若用 T 命令单条执行,会依次显示 0,9 十个数字。若用 G 命令运行程序,由于程序运行速度快,端口串行输出的速度很慢,这样新会丢失某些输出的字行;如,在命令行提示符状态下输入 G 2020 命令后,屏幕可能的显示为 059 或 069 ,而不是 023456789全部的 10 个字符。作业:若要求在终端输出,A,到Z,共 26 个英文字应如修改

13、例 1 中给出的程序?请验证之。 参考答案: 1)在命令行提示持状态下输入: A 2100 屏幕将显示: 2100: 从地址 2100 开始输入下列程序: 2100: MVD R2,1A ;循环次数为26 MVD R0 , 4l ;字符 A 的值 2104: OUT 00 :输出保存在R0低位字节的字符 DEC R2 ;输出字符个数减1 JZ 2111 :判26个字符输出完否,已完,则转移到程序结束处 PUSH R0 ;未完,保存R0的值到堆栈中 2109: IN 01 ;查询接口状态,判字符串行输出完成否 SHR R0 JNC 2109 ;未完成,则循环等待 POP R0 ;己完成,准备赖出下一字6。从埃钱恢复则的值 INC R0 ;得到下一个要输出的字符 JNC 2104 :转去输出出字符 2111:RET用G

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号