微机原理实验指导一(2015-2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]

相关文档
最新文档