实验05求最大值和最小值实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五求最大值和最小值
实验日期: 2013-11-13
学校:安徽农业大学经济技术学院星期:三节次: 1、2 实验课时:姓名:江珊珊学号:专业、班级:通信三班得分:
1、实验目的
(1)、学习子程序的定义和调用方法。
(2)、掌握子程序设计、调试。
2、实验内容
对内存中给定的几个无符号字节数,求其最大值和最小值。
3、实验步骤
(1)在内存4000H~4007H中写入任意八个字节的数。
(2开始运行程序。
4、实验运行结果:
编程代码如下所示:
ORG 0100H
START0: MOV SI,4000H
MOV CX,0008
MAXMIN:MOV BH,[SI]
MOV BL,BH
CON2: LODSB
CMP AL,BH
JNA X1
MOV BH,AL
JMP X2
X1: CMP AL,BL
JNB X2
MOV BL,AL
X2: LOOP CON2
MOV AH,4CH
INT 21H
结果截图如下所示:
5、思考题解答
按如下要求编写程序:
设4000H单元开始有10个数,编程计算这十个数的平均值(存放在DH中),并统计这十个数中,大于平均值的个数(存放在DL中)。找出这十个数的最大值和最小值(存在在BH和BL中)(1)其求平均值并将10个数中大于平均值的个数保存到DL中的编程如下所示:
MOV SI,4000H
MOV AX,0
MOV BH,0
ABC:MOV BL,[SI]
ADD AX,BX
INC SI
LOOP ABC
MOV CL,10
DIV CL
MOV DH,AL
MOV SI,4000H
MOV DL,0
CON1:LODSB
JNA X1
INC DL
X1:LOOP CON1
MOV AH,4CH
INT 21H
其执行结果截图(一)如下所示:
(2)求10个数中的最大和最小值分别放在BH和BL中:其编程如下所示:
ORG 0100H
START0: MOV SI,4000H
MOV CX,0010
MAXMIN:MOV BH,[SI]
MOV BL,BH
CON2: LODSB
CMP AL,BH
JNA X1
MOV BH,AL
JMP X2
X1: CMP AL,BL
JNB X2
MOV BL,AL
X2: LOOP CON2
MOV AH,4CH
其运行结果截图(二)如下:
2、在变量BUFF中存放10个有符号字节数,编程实现如下功能:统计此数据区中正数、负数和零的个数,并分别将统计结果保存在字节变量AH、AL和BL。
此程序的编程如下所示:(取DB为20H,30H,40H,50H,60H,70H,0,90H,0,0B2H)
ASSUME CS:CSEG,SS:SSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV AH,0
MOV DH,0
MOV SI,OFFSET BUFF
MOV CX,10
LLL1:MOV AL,[SI]
INC SI
JZ ZERO
JG ZHENGSHU
FUSHU:INC BH
JMP LOOP11
ZERO:INC DH
JMP LOOP11
ZHENGSHU:INC AH
LOOP11:LOOP LLL1
MOV AL,BH
MOV BL,DH
HLT
其运行结果截图如下所示:
(注:本资料素材和资料部分来自网络,仅供参考。请预览后才下载,期待您的好评与关注!)