匯編實現(xiàn)直接插入排序的方法示例
更新時間:2020年02月04日 09:58:50 作者:this.
這篇文章主要介紹了匯編實現(xiàn)直接插入排序的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
上一篇實現(xiàn)了簡單插入排序的算法,這一篇主要實現(xiàn)直接插入排序算法:
S0 SEGMENT STACK DW 20 DUP(?) TOP LABEL WORD S0 ENDS S1 SEGMENT TIP DB "Input ten number and separate the numbers with space:", 0DH, 0AH, 24H ARY DW 20 DUP(0) CRLF DB 0DH, 0AH, 24H N DW 0 E DW 0 S1 ENDS S2 SEGMENT ASSUME SS:S0, DS:S1, CS:S2, ES:S1 P PROC FAR MOV AX, S0 MOV SS, AX LEA SP, TOP MOV AX, S1 MOV DS, AX MOV AX, S1 MOV ES, AX LEA DX, TIP MOV AH, 9 INT 21H LEA SI, ARY XOR DX, DX PUSH DX MOV BL, 10 MOV CX, 10 INPUT: MOV AH, 1 INT 21H CMP AL, 20H ;空格分隔字符 JE SAVE ;輸入十進制數(shù),將數(shù)存入SI對應的內(nèi)存單元 MOV DL, AL MOV AX, [SI] MUL BL SUB DL, 30H ADD AL, DL MOV [SI], AX JMP INPUT SAVE: ADD SI, 2 LOOP INPUT ;數(shù)組保存完畢 LEA SI, ARY MOV DI, SI ADD DI, 2 SUB SI, 2 MOV E, SI ;E用于存放數(shù)組的前一個地址,用來判斷遍歷結(jié)束 ADD SI, 2 XOR AX, AX ;AX用來存插入元素的地址 MOV CX, 9 ;總循環(huán)次數(shù) GO: MOV BX, [DI] PUSH SI ;第一個數(shù)的位置壓棧 CMPA: CMP BX, [SI] JA SEL ;小于就把AX的值存放當前要插入的位置 MOV AX, SI SUB SI, 2 CMP SI, E JNE CMPA SEL: CMP AX, 0 ;判斷AX是否又被修改過,沒有說明當前數(shù)比前面的數(shù)大 JE CON POP SI ;取出第一個數(shù)字的位置 ;從AX到SI這一段的所有數(shù)字往后移動一個位置 CHANGE: MOV DX, [SI] XCHG DX, [SI+2] ;當SI表示的位置在AX前面了,說明移動完成 MOV BP, SI SUB SI, 2 CMP AX, BP JNE CHANGE MOV SI, AX MOV [SI], BX CON: ADD DI, 2 ;繼續(xù)下一次 MOV SI, DI SUB SI, 2 XOR AX, AX ;同時需要清空AX CALL PRINT LOOP GO EXIT: MOV AH, 4CH INT 21H P ENDP ;以下為十進制輸出數(shù)組中的所有數(shù) PRINT PROC NEAR PUSH SI PUSH CX PUSH AX PUSH DX LEA DX, CRLF MOV AH, 9 INT 21H LEA SI, ARY MOV CX, 10 L1: MOV AX, [SI] MOV N, AX CALL OUTPUT ADD SI, 2 MOV DX, 20H MOV AH, 2 INT 21H LOOP L1 POP DX POP AX POP CX POP SI RET PRINT ENDP OUTPUT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX XOR CX, CX MOV AX, N MOV BX, 10 L2: XOR DX, DX DIV BX PUSH DX INC CX CMP AX, 0 JNE L2 L3: POP DX ADD DX, 30H MOV AH, 2 INT 21H LOOP L3 POP DX POP CX POP BX POP AX RET OUTPUT ENDP S2 ENDS END P

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
匯編語言功能實現(xiàn)數(shù)據(jù)復制實例詳解
這篇文章主要為大家介紹了匯編語言功能實現(xiàn)數(shù)據(jù)復制的實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11
匯編語言中的函數(shù)調(diào)用參數(shù)傳遞及全局與局部變量與“基址”
這篇文章主要介紹了匯編眼中的函數(shù)調(diào)用參數(shù)傳遞以及全局與局部變量與“基址”,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
匯編語言實現(xiàn)在指定字符串中搜索字符''A''的方法
這篇文章主要介紹了匯編語言實現(xiàn)在指定字符串中搜索字符'A'的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02

