题目

请用冒泡排序法编程将内存ARRAY单元开始存储的一组8位带符号数据按从大到小排列。

方法

冒泡法

程序

DATA   SEGMENT               
    NUM     DB  5,9,8,7,3,15
    LEN     EQU $-NUM
DATA    ENDS
CODE    SEGMENT                 
   ASSUME   CS:CODE,DS:DATA
START:
    MOV  AX,DATA
    MOV  DS,AX 
    MOV  CX,LEN 
  DEC  CX   ;CX←比较趟数,即外循环次数
LOP1:   MOV  DX,CX  ; 保存外循环次数在DX,内循环比较次数在CX中。
       MOV  SI,0         
  LOP2:
       MOV  AL,NUM[SI]
      CMP  AL,ANUM[SI+1]    ;相邻两数据比较
      JAE  CONT
      XCHG   AL,NUM[SI+1]
    MOV  NUM[SI],AL
CONT :INC SI         ;修改数据地址指针
LOOP  LOP2      ; 内循环结束  
MOV CX,DX   ;恢复外循环计数值
LOOP LOP1 ;外循环是否结束

    MOV  AH,4CH
    INT  21H
CODE    ENDS
END     START


0
Posted in 汇编语言

Leave a Comment:

电子邮件地址不会被公开。