资源描述
微机原理与接口技术实验指导书
30
2020年4月19日
文档仅供参考
微机原理及接口技术
实 验 指 导 书
贵阳学院物电系
实验一 清零程序
一、实验目的
掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。
二、实验内容
把RAM区(数据段)内4000H~40FFH单元的内容清零。
三、实验步骤
1、画出程序流程框图。
2、编写汇编源程序。
3、将源程序编译为可执行文件。
4、使用DEBUG用连续或单步方式运行程序,检查4000~40FFH内容执行程序前后的变化。
四、数据记录
1、程序流程图。
2、源程序。
3、实验结果。
五、思考
假使4000H~40FFH中内容改成FF,如何修改程序?
附:参考程序框图
参考程序
DATA SEGMENT
ORG 4000H
DB 256 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV BX,4000H
MOV AX,0000H
MOV CX,0080H
L1: MOV [BX],AX
INC BX
INC BX
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验二 数据区移动
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把(数据段)4100H源RAM区首址内的16字节数据传送到(数据段)4200H目标RAM区。
程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储器中可能有三种情况,如下图:
对于两个数据块分离的情况,如图(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。能够得出如下结论:当源数据首址 > 目的块首址时,从数据块首址开始传送数据。当源数据块首址 < 目的块首址时,从数据块末地址开始传送数据。
三、实验步骤
1、画出程序流程框图。
2、编写汇编源程序。
3、将源程序编译为可执行文件。
4、使用DEBUG用连续或单步方式运行程序,检查4200~420FH内容执行程序前后的变化。
四、数据记录
1、程序流程图。
2、源程序。
3、实验结果。
五、思考
采用串操作指令实现程序。
附:参考程序框图
参考程序
DATA SEGMENT
ORG 4100H
STRING1 DB 16 DUP(7)
ORG 4200H
STRING2 DB 16 DUP(6)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,0010H
MOV SI,4100H
MOV DI,4200H
CMP SI,DI
JA A42
ADD SI,CX
ADD DI,CX
A41: DEC SI
DEC DI
MOV AL, [SI]
MOV [DI],AL
LOOP A41
JMP EXIT
A42: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP A42
EXIT: MOV AH,4CH
CODE ENDS INT 21H
END START
实验三 数据排序实验
一、实验目的
熟悉8088指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其方法为用冒泡法将(数据段)RAM中4000H~400AH单节字节无符号的正整数,按从大到小的次序重新排列。
(1)从第一个数开始,依次把相邻的两个数进行比较,即第(N-2)个数与第(N-1)个数比较,第(N-1)个数与N个数比较等等;若第(N-1)个数不大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数被排在N个数的最后。
(2)对剩下的(N-1)个数重复第(1)步,找到(N-1)个数中的最小数。
(3)重复第(2)步,直到N个数全部排序好为止。
三、实验步骤
1、画出程序流程框图。
2、编写汇编源程序。
3、将源程序编译为可执行文件。
4、使用DEBUG用连续或单步方式运行程序,检查内容执行程序前后的变化。
四、数据记录
1、程序流程图。
2、源程序。
3、实验结果。
五、思考
在4000H~400AH中经过键盘命令输入不等的10个数,运行本实验程序后检查4000H~400AH中内容是否按从大到小排列。
附:参考程序框图
参考程序
DATA SEGMENT
ORG 4000H
DB 10 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,0009H
A53: MOV BX,4000H
PUSH CX
A52: MOV AX,[BX]
CMP AL,AH
JC A5l
A54: INC BX
LOOP A52
POP CX
LOOP A53
JMP EXIT
A51: XCHG AL,AH
AX MOV [BX],
JMP A54
EXIT:MOV AH,4CH
INT 21H
CODE ENDS
END START
实验四 多分支程序设计
一、实验目的
掌握汇编语言的编程,熟悉程序散转的设计方法。
二、实验内容
变量x的符号函数如下所示:
1 当x>0
y= 0 当x=0
-1 当x<0
编程程序,根据x的值给y赋值。
三、实验步骤
1、画出程序流程框图。
2、编写汇编源程序。
3、将源程序编译为可执行文件。
4、使用DEBUG用连续或单步方式运行程序,检查内容执行程序前后的变化。
四、数据记录
1、程序流程图。
2、源程序。
3、实验结果。
附: 参考程序
DATA SEGMENT
x DW ?
y DW ?
DATA ENDS
STACK SEGMENT STACK ‘STACK’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,x
AND AX,AX
JZ ZERO
JNS PLUS
MOV BX,0FFFFH
JMP DONE
ZERO: MOV BX,0
JMP DONE
PLUS: MOV BX,1
DONE: MOV y,BX
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验五 显示子程序
一、实验目的
掌握显示器的显示过程。
二、实验内容
编写程序,依次闪动显示“dais88”“good”。
三、实验步骤
1、画出程序流程框图。
2、编写汇编源程序。
3、将源程序编译为可执行文件。
4、观察屏幕显示情况。
四、数据记录
1、程序流程图。
2、源程序。
3、实验结果。
附:参考程序框图
实验六:A/D转换实验
一、 实验目的
了解模/数转换基本原理,掌握ADC0809(ADC0804)的使用方法、熟悉PROTEUS仿真平台的使用。
二、 实验内容
将5V的直流电经过电阻分压后送入ADC0809(ADC0804),经过转换以后的8位数值由CPU送到8个LED显示。
三、实验步骤
1、搭建实验仿真用电路。
2、编写汇编源程序。
3、将源程序编译。
4、调节可变电阻,观察LED变化。
四、数据记录
1、电路原理图。
2、程序流程图。
3、实验结果。
实验七:D/A转换实验
一、 实验目的
了解数/模转换基本原理,掌握DAC0832的使用方法、熟悉PROTEUS仿真平台的使用。
二、 实验内容
由CPU依次送出数值为0-255(进制)的8位二进制数到DAC0832,经过转换后送示波器显示。
三、实验步骤
1、搭建实验仿真用电路。
2、编写汇编源程序。
3、将源程序编译。
4、运行程序观察示波器显示。
四、数据记录
1、电路原理图。
2、程序流程图。
3、实验结果。
实验八:8255A并行口实验
一、 实验目的
了解数字接口芯片基本原理,掌握8255A的使用方法、熟悉PROTEUS仿真平台的使用。
二、 实验内容
由8255A的A口输入开关量,经过CPU处理后送8255A的B口。由B口接的LED显示开关量。
三、实验步骤
1、搭建实验仿真用电路。
2、编写汇编源程序。
3、将源程序编译。
4、运行程序改变开关量的输入,观查LED显示。
四、数据记录
1、电路原理图。
2、程序流程图。
3、实验结果。
实验九:中断控制器实验
一、 实验目的
了解数字接口芯片基本原理,掌握中断子程序的编写方法、熟悉PROTEUS仿真平台的使用。
二、 实验内容
由一外接点平信号触发非可屏蔽中断,调用相应的中断子程序。由LED显示。
三、实验步骤
1、搭建实验仿真用电路。
2、编写汇编源程序。
3、将源程序编译。
4、运行程序观查LED显示。
四、数据记录
1、电路原理图。
2、程序流程图。
3、实验结果。
展开阅读全文