汇编_ASM_选择排序

原创 2012年03月23日 00:06:13
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


选择排序(汇编实现)

刚学汇编,于是用汇编编写了选择排序算法,初学真是各种心累啊。 (选择排序思想即为每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。) DATA SEGM...
  • u013519226
  • u013519226
  • 2016年05月03日 22:35
  • 963

MIPS汇编语言实现选择排序

MIPS汇编语言实现排序算法,其实并不难。只要你掌握了基本的指令语句,并且熟悉C或C++相关算法,即可轻松写出来。...
  • Kiloveyousmile
  • Kiloveyousmile
  • 2017年04月04日 03:48
  • 991

【8086汇编】基础排序之冒泡排序

冒泡排序是一种极为基础的排序算法,相信学过C语言、JAVA等编程语言的同学对此都有所了解。 冒泡排序的原理是将数组中的前后两个数两两比较,小的在前大的在后(你也可以反过来),一次循环过后,最大的数...
  • qq_37792173
  • qq_37792173
  • 2017年05月22日 23:19
  • 148

8086汇编排序(冒泡、选择、快速)

本代码通过测试,可通过masm查验
  • you1314520me
  • you1314520me
  • 2014年06月01日 16:56
  • 2894

linux asm汇编例子

hello.asm section .text ; The _start symbol must be declared for the linker (ld) global ...
  • earbao
  • earbao
  • 2016年06月17日 16:30
  • 761

ARM内连汇编_asm_

在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,c语言内嵌汇编的方式...
  • qq_23084801
  • qq_23084801
  • 2017年08月13日 12:33
  • 95

汇编 选择排序

SAVEREG macro push ax push bx push cx push dx push si push diendmRESAVEREG macro pop di pop si pop d...
  • xiaofengsheng
  • xiaofengsheng
  • 2009年11月26日 13:17
  • 1630

linux中C嵌arm汇编 __asm__ __volatile__

本文转自:http://blog.csdn.net/geekcome/article/details/6216436 ,本人只添加了一些注释 带有C/C++表达式的内联汇编格式: __asm_...
  • liu454638324
  • liu454638324
  • 2014年12月12日 20:37
  • 1372

arm汇编指令WFI和WFE

1. 前言 很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂。最近准备研究CPU idle framework,由于WFI是让CPU进入idle状态的一种方法,就下决心把它们弄清楚。...
  • MIThebut
  • MIThebut
  • 2015年04月21日 20:09
  • 2255

嵌入式汇编和机器码的反汇编

0.11 Linux中的一段嵌入式汇编代码 与 机器码的反汇编代码的一些对比
  • aotony_1988
  • aotony_1988
  • 2016年03月31日 15:10
  • 1142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汇编_ASM_选择排序
举报原因:
原因补充:

(最多只允许输入30个字)