微机原理及接口技术实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及接口技术实验指导书
书写实验名称时请按下表内容填写:
实验名称实验类型实验学时实验一、熟悉实验运行环境实验验证 2
实验二、分支程序设计验证 2
实验三、循环程序设计验证 2
实验四、8255A并行接口应用实验验证 2
实验五、中断特性及8259应用编程验证 2
实验六、定时器 / 计数器实验验证 2
实验七、电子琴实验综合 4
实验一、熟悉实验运行环境实验
一、实验目的
1、熟悉汇编语言程序的调试环境
2、掌握部分DEBUG命令
二、实验内容
编写一个汇编语言程序,计算1+2+3+…+99+100,并将结果存入SUM字单元。通过调试程序熟悉汇编语言的上机操作过程及部分命令。
三、上机操作过程
1、建立ASM文件(编辑源程序)
使用编辑程序EDIT在磁盘上建立源程序EX.ASM
例如:D:\MASM>EDIT EX.ASM
用MASM程序产生OBJ文件
源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ文件)
例如:D:\MASM>MASM EX
3 、用LINK程序产生EXE文件
汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把目标文件转换为可执行的EXE文件
例如:D:\MASM>LINK EX
4、调试运行
在建立了EXE文件后,就可以直接从DOS执行程序。如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。
那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶
段才能纠正程序执行中的错误,得到正确的结果。这里就要使用调试程序。
例如:D:\MASM>DEBUG EX.EXE
①R命令显示或修改寄存器中的内容
例如:_R BX
BX 0369
:059E
不作修改,直接回车;否则键入修改内容,并回车
②U命令反汇编
a、_U[地址] 从指定地址开始,反汇编32个字节。如果地址省略,则从上
一个U命令的最后一条指令的下一个单元开始显示32个字节
b、_U[范围] 对指定范围的内存单元进行反汇编
例如:_U 04BA:0100 0108
③T命令单步执行命令(一次执行一条指令)
例如:从代码段的0000H处开始单步执行
_R IP
IP XXXX
: 0000
_T
④G命令执行命令(执行多条指令)
_G 地址1 地址2
表示从地址1开始执行指令到地址2结束
例如:从代码段的0000H处开始连续执行指令,知道0013H处
_R IP
IP XXXX
: 0000
_G 0013
⑤D命令显示内存单元的内容
a、_D 地址
b、_D 范围
例如:显示数据段中0000H开始的若干个字节单元的内容
_D DS:0000
例如:显示数据段中0000H到0010H各字节单元的内容
_D DS:0000 0010
⑥E命令修改存储单元的内容
例如:修改数据段0002H字节单元的内容为0FFH
_E DS:0002
XXXX:0002 XX FF
⑦Q命令退出DEBUG程序
实验二、分支程序设计
一、实验目的
1、掌握分支程序的结构形式
2、掌握分支程序的设计方法二、实验内容
1、计算分段函数,X 为8位带符号数
2、算法分析
先将X 的范围确定在-10≤x ≤20之内,除此之外结果全为0,然后计算
X+5,再根据结果的符号求绝对值。三、流程图
|X+5|,-10≤x ≤20
,
其它
Y=
实验三、循环程序设计
一、实验目的
1、掌握循环程序的结构形式
2、掌握循环程序的设计方法
3、进一步熟悉DEBUG 的常用命令二、实验内容
1、根据题意编写程序
若需对某单位职工人数中的男性和女性人数分别进行统计。在人口属性统计表中,男性用‘0’表示,女性用‘1’表示。假设人口属性统计表存放在BLOCK 为首地
址的内存中,该单位总人数为COUNT ,统计出的男性总人数存入
MAN 字节单元,女性
总人数存入WOMAN 字节单元。
数据段定义如下: DATA SEGMENT
Begin
X (AL)
(AL)<-10?
(AL)>20?
(AL)=(AL)+5 SF=0?
NEG AL
(AL) Y
END
(AL)=0
BLOCK DB 1,0,0,1,0,1……0 (长度为20)
MAN DB ?
WOMAN DB ?
COUNT EQU 20
DATA ENDS
2、算法分析
已知单位的总人数,首先明确可以使用计数器控制法。使用一个变址寄存器指向人口属性统计表的首单元,然后判断该字节单元是“1”还是“0”,分别在相应计数器中加1。直至判断完每个字节结束。
三、流程图
Begin
SI指向BLOCK
COUNT (CX)
计数器BH,BL清零
[SI] (Al)
(AL)=1?
INC BH INC BL
INC SI
DEC CX
(CX)=0?
保存结果
END