本文主要是介绍汇编程序:查找给出数组中的最大最小值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DATA SEGMENTTABLE DB 10,9,4,6,12,1,4,13,15,11NUM EQU ($-TABLE)-1 ;冒泡排序次数为元素个数n-1
DATA ENDSCODE SEGMENTASSUME: CS:CODE, DS:DATA
START:MOV AX, DATAMOV DS, AXMOV CX, NUMLEA SI, TABLE ;地址指针SI指向TABLE储存区首地址MOV BH, [SI] ;将第一个数放入BH,保存当前最大值MOV BL, [SI] ;第一个数放入BL,保存当前最小值CALL FIND ;调用子程序查找最大值和最小值MOV AL, BH CALL PRINT ;调用显示子函数MOV AL, BLCALL PRINTMOV AH, 4CHINT 21H ;返回操作系统FIND PROC NEAR
L: INC SI ;指针SI移动到下一个数MOV AL, [SI]CMP AL, BL ;与BL比较大小JB NEXT1 ;AL小于BL跳转CMP AL, BH ;与BH比较大小JB NEXT2 ;AL小于则BH跳转MOV BH, AL ;否则BH替换为更大的值JMP NEXT2 NEXT1:MOV BL, AL ;BL替换为更小的值JMP NEXT2 NEXT2:LOOP L ;查看循环是否停止RET
FIND ENDPPRINT PROC NEAR ;显示子程序PUSH DXAND AL, 0FH ;首先取低四位MOV DL, AL CMP DL, 9 ;判断是否<=9JLE DISP ;若是则为‘0’~ ‘9’,ASCII码加30HADD DL, 7 ;若不是则为‘A’~ ‘F’,ASCII码加37HDISP: ADD DL, 30HMOV AH, 02H ;显示INT 21HMOV DX, 0DH ;加回车符INT 21HMOV DL, 0AH ;加换行符INT 21HPOP DXRET ;子程序返回PRINT ENDPCODE ENDS
END START
这篇关于汇编程序:查找给出数组中的最大最小值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!