微机原理实验指导一(2015-2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、系统认识实验
1.1 实验目的
掌握QASM轻松汇编(TD系列微机原理及接口技术教学实验系统)的操作,熟悉QASM(Wmd86联机集成开发调试软件)的操作环境。学习和掌握程序编写,汇编,调试的方法和技术。
1.2 实验设备
PC机一台,(TD-PITE实验装置或TD-PITC实验装置一套)。
1.3 实验内容
编写实验程序,将00H~0FH共16个数写入内存03000H开始的连续16个存储单元中。
1.4 实验步骤
1. 进入QASM编程环境:将TDASM和ASMPRO文件夹复制到D盘根目录上,运行TDASM下的QASM,进入集成开发环境。
2.输入汇编源程序:编写输入实验程序,如图所示,并保存为A1,此时系统会提示输入新的文件名,输完后点击保存。可以用打开文件方式将以前保存的源程序调入。
程序编辑界面
3. 程序的汇编与连接:点击,编译文件,若程序编译无误,则可以继续点击进行链接,链接无误后方运行调试程序。
编译输出信息界面
4.观察程序及变量分配:点击“交叉文件”,观察源程序代码与机器代码与存储形式。
点击“汇编程序”返回汇编程序窗口。
操作练习:1、对上述程序进行观察。看汇编源程序的指令与机器码指令的对应关系及程序存放形式。
2、打开程序EX1,观察变量定义及存放关系。
3、打开EX3—2,观察变量定义及内存分配。
5.集成调试环境的使用:
单步执行:点击“调试”菜单下的“单步”,可以一条一条的执行指令。
查看修改寄存器:在调试过程中,可能通过调试窗口的“调试”选单,观察和修改CPU中寄存器的内容。
查看变量和存储单元内容:在调试过程中,可能通过调试窗口的“查看”选单,可以添加要查看的存储单元或者变量的的内容。
断点设置:在程序的对应指令行点击行号,可以设置程序断点(出现红色园点)。或者取消断点。
连续运行:点击调试菜单下的“GO”,或让程序连续运行到断点处停止。
操作练习:1、打开程序EX1,单步运行程序,观察寄存器及存储单元变化。并记录。
3、打开EX3—2,观察变量定义及内存分配。单步运行程序,观察寄存器及存储单元变化。并记录。
6.TRUBODEBUGGER的使用:(详细说明见TRUBODEBUGGER一览表)
进入TD:汇编连接完成后,点击“调试”菜单下的“TD。。。”可进入TRUBODEBUGGER调试环境。
单步执行:点击“STEP”,可以一条一条的执行指令。
查看修改寄存器:点击“VIEW”菜单下的“REGISTER”选单,可以观察和修改CPU中寄存器的内容。
查看和修改变量单元内容:点击“VIEW”菜单下的“VARIABLE”选单,可以观察和修改变量单元的内容。
查看和修改存储单元内容:点击“VIEW”菜单下的“DUMP”选单,可以观察和修改存储单元的内容。
断点设置:在程序的对应指令行点击,再点击“BKPT ”,可以在该得设置断点。 连续运行:点击 “RUN ”,让程序连续运行到断点处停止。
操作练习: 1、打开程序A1,单步和设置断点运行程序,观察寄存器及存储单元变化。 程序观察程序运行前后 0000:3000开始的十六个字节单元的数据。 2、打开EX1,单步和设置断点运行程序,输入不同数,运行后检查变量X 和XXX 的值,并记录。
3、编写程序,将内存0000:3500H 单元开始的8个数据复制到0000:3600H 单元开始的数据区中。通过调试验证程序功能。使用TD 调试程序,先将0000:3500H 单元写入8个数,然后运行程序,观察程序是否将数据复制到0000:3600H 单元中。
二、数制转换实验
计算机与外设间的数制转换关系如图2-1所示,数制对应关系如表2-1所示。
二进制
图2-1 数制转换关系
1.操作练习:
1、打开程序A1,单步和设置断点运行程序,观察寄存器及存储单元变化。 程序观察程序运行前后 0000:3000开始的十六个字节单元的数据。
2、打开EX1,单步和设置断点运行程序,输入不同数,运行后检查变量X 和XXX 的值,并记录。
3、编写程序,将内存0000:3500H 单元开始的8个数据复制到0000:3600H 单元开始的数据区中。通过调试验证程序功能。使用TD 调试程序,先将0000:3500H 单元写入8个数,然后运行程序,观察程序是否将数据复制到0000:3600H 单元中。
2. 将ASCII 码表示的十进制数转换为二进制数
十进制表示为:
∑=--⨯=
⨯+⋅⋅⋅+⨯+⨯n
i i i
01
n 1n n
n 10D
10D 10
D 10D (1)
D i 代表十进制数0,1,2, (9)
上式转换为:
012n 1n n n
i i i
D 10)D 10)D 10)D 10D (((10D
+⨯+⋅⋅⋅+⨯+⨯+⨯⋅⋅⋅=⨯--=∑ (2)
由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位D n 开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。
程序流程图如图2-2所示。实验参考程序如下。 实验程序清单(例程文件名:A2-1.ASM )
SSTACK SEGMENT STACK
DW 64 DUP(?) SSTACK ENDS DATA SEGMENT
SADD DB 30H,30H,32H,35H,36H ;十进制数:00256
DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX
MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H A1: IMUL BX
MOV DX, [SI+01]