微机原理与系统设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与系统设计实验
指导书
电子科学与技术
福州大学物理与信息工程学院
目录
实验一数据传送程序 (1)
实验二数据运算程序 (2)
实验三键盘、显示器操作程序 (4)
实验四8255接口实验 (5)
实验五8253音频接口实验 (7)
实验六0832小直流机转速实验 (9)
实验七综合实验 (12)
附:DEBUG主要命令 (12)
实验一数据传送程序
一、实验目的:
1、掌握传送类程序的基本设计框架;
2、掌握程序汇编、连接、调试的全过程;
3、掌握汇编程序Debug的使用及观察方式。
二、实验内容
已知有一个以“$”为标志结束的字符串存于以地址string1开始的内存中,编程将上述字符串存于以地址string2开始的内存中。
三实验步骤
用masm.exe实现正确编译,用link.exe实现正确连接,用debug.exe实现对程序的跟踪、调试、观察。
用debug.exe对程序调试、观察
-N C:\JK\JK\CAI2000\STR.EXE
-L ;调入文件
-T ;单步运行
-T30 (或G 001C);运行
-D DS:0000 ;看结果
-Q ;退出
四、编程提示
由于字符串未知不能用计数方式,要使用“$”来控制循环的退出。
参考程序(有部分错误,需要修改)
DATA SEGMENT
STRING1 DB 'MNOPQXYZ $'
STRING2 DB 50 DUP(?)
DATA ENDS
COEG SEGMENT
ASSUME DS:DATA,CS:COEG
START:MOV AX,DATA
COV DS,AX
LEA SI,STRING1
LEA DI.STRING2
NEXT: CMP BYTE PTR [SI] ,'$'
JZ JSP
MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
JMP NEXT
JSP:MOV AH,4CH
INT 21H
COEG ENDS
END START
五思考问题
1 单步运行的结果如何查看。
2 Debug各常用指令T,D,Q,G,L,N的用法。(附录部分有说明)
3 各段寄存器的内容及指针的内容如何看。
4 内存的查看及表示含义, 字符串查看的方法。
5 结果正确与否,如何验证?
6 每一指令的具体用途?
7 LST文件如何生成,如何查看?它的作用。
8如何用DEBUG中的G指令直接执行结果处。
实验二数据运算程序
一、实验目的:
1、掌握运算类程序的基本设计框架;
2、掌握汇编程序调试和验证方法;
3、掌握Debug的使用及观察方式。
二、实验内容
从内存num开始的单元中存放8个同学的某门课的考试成绩,试编写程序求出该门课的总成绩及平均成绩。
三、实验步骤:
用debug.exe对程序调试、观察。
-N C:\JK\JK\CAI2000\STR.EXE
-L ;调入文件
-T
-T30 (G 0000 0030);运行
-D DS:0000H ;看结果
-Q ;退出
四、编程提示
由于循环次数已知,可用mov cx,08h;loop sum 方式循环。注意:除法运算、移位运算、累加和的进位等.
参考程序
DATA SEGMENT
num Dw 1,2,3,4,5,6,7,8
sum dw ?
ave dw ?
DATA ENDS
STACK SEGMENT
STACK ENDS
COEG SEGMENT
ASSUME DS:DATA,SS:STACK, CS:COEG
START:MOV AX,DATA
MOV DS,AX
LEA SI,NUM
MOV CX,08H
MOV AX,0H
LOP:ADD AX,[SI]
INCC SI
INC SI
LOOP LOP
MOV SUM AX
SHR AX,1
SHR AX,1
MOV AVE ,AX
MOV AH,4CH
INT 21H
COEG ENDS
END START
五思考要求
1 如何验证结果的正确及运行过程中的错误。
2 比较字节与字的存储。
3 修改程序,求出最大值,放入内存。
4 内存的查看及表示含义,数的查看。
实验三键盘、显示器操作程序
一、实验目的:1、掌握EXE文件的执行;
2、掌握汇编程序的DOS功能调用;
3、掌握汇编程序的键盘和显示器的使用。
二、实验内容
从键盘上输入5个字符如ABCDE,每组中间用空格分割后加括号输出< A B C
D E >。
三、实验步骤:
执行exe程序,直接观察结果。
四、编程提示
验证结果的正确(通读程序,对程序修改,需要增加指令后,才能看到结果,然后再按要求修改程序)
DATA SEGMENT
NUM DB '<',13 DUP (?),'>','$'
DATA ENDS
STACK SEGMENT
STACK ENDS
COSEG SEGMENT
ASSUME DS:DATA, SS:STACK, CS:COSEG
START:MOV AX, DATA
MOV DS,AX
LEA SI,NUM
INC SI
MOV CX,05H
LOP: MOV AH,01H
INT 21H
MOV [SI],AL
INC SI
MOV [SI],20H
INC SI
LOOP LOP
DEC SI
MOV [SI],'>'
LEA DX,NUM
MOV AH,09H
INT 21H