微机原理与接口技术
实验指导书
贵阳学院物电系2009
实验一清零程序
一、实验目的
掌握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 ENDSINT 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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论