实验内容:
利用子程序的方法编写程序。
求10个无符号字节序列中的最大值和最小值,并把结果在屏幕上显示。
相关知识:
- 掌握子程序设计的基本方法,包括子程序的定义、调用和返回。
- 巩固常用dos功能操作。
程序流程图:
实现代码:
DATA SEGMENT
STRING1 DB 'The MAX is ','$'
STRING2 DB 'The MIN is ','$'
HUANHANG DB 0DH,0AH,'$'
BUFFER DB 9,1,2,0,3,6,5,8,7,4 ;定义数据
COUNT EQU $-BUFFER
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAXANDMIN PROC ;定义子程序
X1:INC SI
MOV AL,[SI]
CMP AL,BL ;和当前最小值进行比较
JGE X2
MOV BL,AL ;小于当前最小值则赋值
JMP X3
X2:CMP AL,BH ;和当前最大值进行比较
JLE X3
MOV BH,AL
X3:DEC CX
JNE X1
RET
MAXANDMIN ENDP
START:MOV AX,DATA
MOV DS,AX
LEA SI,BUFFER
MOV CX,COUNT-1
MOV BH,[SI]
MOV BL,BH
CALL MAXANDMIN ;调用MAXANDMIN 子程序
PRINT:
LEA DX,STRING1
MOV AH,09H
INT 21H
ADD BH,30H ;输出MAX
MOV DL,BH
MOV AH,02H
INT 21H
LEA DX,HUANHANG ;换行
MOV AH,09H
INT 21H
LEA DX,STRING2
MOV AH,09H
INT 21H
ADD BL,30H ;输出MIN
MOV DL,BL
MOV AH,02H
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START