作业帮 > 综合 > 作业

汇编语言找最大值最小值,这个程序只能求出最大值,怎么改才能把最小值也求出来啊?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 22:56:09
汇编语言找最大值最小值,这个程序只能求出最大值,怎么改才能把最小值也求出来啊?
DATA \x05SEGMENT
BUFF\x05DB 5,9,3,7,2
MAX\x05DB\x05?
MIN\x05DB\x05?
DATA\x05ENDS
CODE SEGMENT
\x05ASSUME CS:CODE,DS:DATA
START:\x05MOV\x05AX,DATA
\x05MOV\x05DS,AX
\x05MOV\x05SI,0
\x05MOV\x05CX,OFFSET MAX
\x05MOV\x05BX,OFFSET BUFF
\x05SUB\x05CX,BX
\x05MOV\x05AL,[SI]
\x05MOV\x05MAX,AL
\x05MOV\x05BL,[SI]
\x05MOV\x05MIN,BL
LOOP1:\x05MOV\x05AL,[SI]
\x05CMP\x05MAX,AL
\x05JAE\x05NEXT1
\x05MOV\x05MAX,AL
\x05MOV\x05BL,[SI]
\x05CMP\x05MIN,BL
\x05JNB\x05NEXT2
\x05MOV\x05MIN,BL
NEXT1:
NEXT2:\x05INC \x05SI
\x05LOOP \x05LOOP1
\x05MOV\x05DL,MAX
\x05ADD\x05DL,30H
\x05MOV\x05AH,02H
\x05INT\x0521H
\x05MOV\x05DL,MIN
\x05ADD\x05DL,30H
\x05MOV\x05AH,02H
\x05INT\x0521H
\x05MOV \x05AH,4CH
\x05INT\x0521H
CODE\x05ENDS
\x05END\x05START
稍修改即可:
LOOP1:MOV AL,[SI]
CMP MAX,AL
JAE NEXT11
MOV MAX,AL
NEXT11:
MOV BL,[SI]
CMP MIN,BL
JNBN EXT2
MOV MIN,BL
NEXT1:
再问: 怎么出来的最小值和最大值一样都是9啊???
再答: 已修改调试好,完整程序如下: DATA  SEGMENTBUFF DB 5,9,3,7,2MAX DB ?MIN DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,OFFSET MAX MOV BX,OFFSET BUFF SUB CX,BX MOV AL,[SI] MOV MAX,AL MOV BL,[SI] MOV MIN,BLLOOP1: MOV AL,[SI] CMP MAX,AL Ja NEXT11 MOV MAX,ALnext11: MOV BL,[SI] CMP MIN,BL Jb NEXT2 MOV MIN,BLNEXT1:NEXT2: INC  SI LOOP  LOOP1 MOV DL,MAX ADD DL,30H MOV AH,02H INT 21H MOV DL,MIN ADD DL,30H MOV AH,02H INT 21H MOV  AH,4CH INT 21HCODE ENDS END START