微机原理与应用_实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一篇汇编语言程序设计
实验一汇编语言上机操作 2
实验二分支循环程序设计8 实验三显示程序设计13 实验四键盘程序设计18 实验五运算类程序设计24
第二篇微机硬件实验系统
实验一简单I/O口扩展实验 48 实验二 8255并行口实验 51 实验三 8253定时器/计数器接口实验 54 实验四 8250串口实验 58 实验五存储器扩展实验 67 实验六 8259中断控制器实验 70 实验七基于定时中断的实时控制综合实验 75 附录1 8086 CPU系统资源说明85 附录2 ASCII码表 86 附录3DEBUG 主要命令 87 附录4 DOS系统功能调用 91
第一篇汇编语言程序设计
实验一汇编语言上机操作训练—比较字符串
实验项目名称:比较字符串
实验项目性质:普通
所属课程名称:微机原理与应用
实验计划学时:2
一、实验目的
1、学习程序设计的基本方法和技能;
2、熟练掌握汇编语言设计、编写、调试和运行;
二、实验内容和要求
1、汇编语言程序上机操作方法
编写一程序,比较两个字符串STRING1和STRING2所含字符是否相同,若相同则在屏幕上显示‘MATCH’,否则,显示‘NOT MATCH’。
三、实验主要仪器设备和材料
1、计算机一台
四、实验方法、步骤及结构测试
1、建立ASM文件
在WINDOWS系统环境下,调用写字板编辑程序建立源文件。
在DOS系统环境下,调用EDIT全屏幕编辑程序建立源文件。
C:>EDIT↓
;Program Title Goes Here—Compare string
;****************************************
Data segment ;define data segment String1 db ‘Move the cursor backward.’
String2 db ‘Move the cursor backward.’;
Mess1 db ‘Match.’,13,10,’$’
Mess2 db ‘No Match.’,13,10,’$’Data ends
;*************************************** Program segment ;define code segment
Main proc far
Assume cs:program,Ds:data,Es:data Start: ;starting execution address Push ds ;set up stack for return
Sub ax,ax
Push ax
Mov ax,data ;data segment address
Mov ds,ax
MOV es,ax
;main part of program goes here
Lea si,string1
Lea di,string2
Cld
Mov cx,25
Repz cmpsb
Jz MATCH
Lea dx,mess2
Jmp short disp
Match:Lea dx,mess1
Disp: Mov ah,09
Int 21h
Ret ;reture to DOS
Main endp ;end of main part of program Program ends ;end of code segment
End start ;end assembly
写完后保存文件名为*.ASM。
2、用汇编程序MASM对源文件“*.asm”汇编产生目标文件*.obj;
在WINDOWS环境下,点击MASM文件,而后输入*.asm的文件名;
在DOS环境下:
C: >masm *.asm↙
The IBM Personal Computer MACRO Assembler Version 1.00 (C) Copyright IBM Corp 1981
Warning Severe
Error Error
0 0
如汇编过程出错则在屏幕上显示出错信息。
3、用连接程序LINK产生可执行文件*.exe.
在WINDOWS环境下,点击LINK文件,而后输入*.obj的文件名;
在DOS环境下:
C: >link *.obj↙
IBM 5550 Multistation Linker 2.00
(C) Copyright IBM Corp.1983
Waring: No STACK segmengt
There was 1 arror detected
4、执行程序
在WINDOWS环境下,点击*.exe文件运行程序;在DOS环境下:
C: >*.exe↙
MATCH.
在屏幕终端上显示程序的运行结果。
5、用DEBUG调试程序
①输入命令:C: >debug *.exe↙
幕上显示提示符:-
②-G(运行命令)
MATCH.
PROGRAM TERMINATED NORMALLY
在DEBUG中修改字符串内容,先用U命令显示程序,以便了解指令地址。
③-U(反汇编命令)显示程序结果如示:
-U↙
19F3:0000 1E PUSH DS
19F3:0001 2BC0 SUB AX,AX
19F3:0003 50 PUSH AX
19F3:0004 B8EE19 MOV AX,19EE
19F3:0007 8ED8 MOV DS,AX
19F3:0009 8EC0 MOV ES,AX
19F3:000B 8D360000 LEA SI,[0000]
19F3:000F 8D3E1900 LEA DI,[0019]
19F3:0013 FC CLD
19F3:0014 B91900 MOV CX,0019
19F3:0017 F3 REPZ
19F3:0018 A6 CMPSB
19F3:0019 7406 JZ 0021
19F3:001B 8D163B00 LEA DX,[003B]
19F3:001F EB04 JMP 0025
-U↙
19F3:0021 8D163200 LEA DX,[0032]
19F3:0025 B409 MOV AH,09
19F3:0027 CD21 INT 21
19F3:0029 CB RETF
19F3:002A FF7501