欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

匯編實現(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對應(yīng)的內(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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • UEFI開發(fā)基礎(chǔ)HII代碼示例

    UEFI開發(fā)基礎(chǔ)HII代碼示例

    這篇文章主要為大家介紹了UEFI開發(fā)基礎(chǔ)HII代碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    這篇文章主要介紹了匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明,需要的朋友可以參考下
    2020-01-01
  • 匯編程序設(shè)計之DOSBox模擬環(huán)境配置

    匯編程序設(shè)計之DOSBox模擬環(huán)境配置

    最近在學習匯編語言設(shè)計,然后上網(wǎng)找關(guān)于匯編程序的編譯軟件,不負有心人,終于找到了我需要的軟件,值得慶幸
    2023-08-08
  • 匯編語言 跳轉(zhuǎn)指令與C語言的條件分支

    匯編語言 跳轉(zhuǎn)指令與C語言的條件分支

    這篇文章主要介紹了匯編語言 跳轉(zhuǎn)指令與C語言的條件分支,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 匯編語言指令集學習條件轉(zhuǎn)移指令詳解

    匯編語言指令集學習條件轉(zhuǎn)移指令詳解

    這篇文章主要為大家介紹了匯編語言指令集學習條件轉(zhuǎn)移的指令全面總結(jié)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • 匯編語言環(huán)境搭建軟件與教程

    匯編語言環(huán)境搭建軟件與教程

    這篇文章主要介紹了匯編語言環(huán)境搭建軟件與教程,需要的朋友可以參考下
    2020-01-01
  • 一位數(shù)乘法的匯編語言實現(xiàn)方法

    一位數(shù)乘法的匯編語言實現(xiàn)方法

    這篇文章主要介紹了一位數(shù)乘法的匯編語言實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 淺析ARMv8匯編指令adrp和adr

    淺析ARMv8匯編指令adrp和adr

    這篇文章給大家介紹ARMv8匯編指令adrp和adr的相關(guān)知識,暫時不介紹alpha生成的指令,因此先來主要分析一下,arm架構(gòu)之所以少生成匯編指令的原因——adrp指令,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 一文秒懂匯編中的循環(huán)問題

    一文秒懂匯編中的循環(huán)問題

    這篇文章主要介紹了一文秒懂匯編中的循環(huán)問題,通過每一行指令詳細分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 匯編語言之寄存器(詳細介紹)

    匯編語言之寄存器(詳細介紹)

    這篇文章主要介紹了匯編語言之寄存器(詳細介紹),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-01-01

最新評論