PRINT MACRO OPT;輸出十進制數字的宏
MOV AX,OPT
MOV BL,10
DIV BL ;餘數在ah,商在al ,商爲十位,餘數爲個位
MOV DX,AX
ADD DH,30H
ADD DL,30H
MOV AH,02H
INT 21H ;輸出十位
MOV DL,DH
MOV AH,02H ;輸出個位
INT 21H
MOV DL,20H
MOV AH,02H
INT 21H ;輸出空格
ENDM
;.....................................................................................................................
DATA SEGMENT
ARRAY DW 3,2,1
MESSAGE1 DB "ORIGINAL ARRAY:",13,10,'$'
MESSAGE2 DB 13,10,"AFERT SELECTEDSORT:",13,10,'$'
TEMP DW 0
COUNT DW 3
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
;.....................................................................................................................
MAIN PROC FAR
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESSAGE1
MOV AH,09H
INT 21H ;提示輸出原始數組
MOV CX, COUNT
LEA SI,ARRAY
ORG_PRINT: PRINT [SI]
ADD SI,2
LOOP ORG_PRINT
MOV DL,0
MOV AH,02H
INT 21H
CALL SORT;調用排序子程序
LEA DX,MESSAGE2
MOV AH,09H
INT 21H
MOV CX,COUNT
LEA SI,ARRAY
SORTED_PRINT: PRINT [SI]
ADD SI,2
LOOP SORTED_PRINT
MOV AH,4CH
INT 21H
MAIN ENDP
;................................................................................................................................
SORT PROC NEAR;選擇排序子程序
MOV CX,COUNT
LEA DI,ARRAY
LOP1: MOV DX,CX
MOV SI,DI
MOV BX,DI
ADD BX,2
LOP2: MOV AX,[SI]
CMP AX,[BX]
JLE CONTINUE
MOV SI,BX
CONTINUE: ADD BX,2
LOOP LOP2
MOV AX,[DI]
XCHG AX,[SI]
MOV [DI],AX
ADD DI ,2
MOV CX,DX
LOOP LOP1
RET
SORT ENDP
CODE ENDS
END START
彙編_ASM_選擇排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.