您的位置:首页 > 其它

用汇编写改进的冒泡排序

2012-10-18 17:58 218 查看
实现的排序的次数输出和排完序后数组的输出

DATAS SEGMENT

aa db 0,1,2,4,3,5,6,7,8,9

temp db ?

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

mov bx,9;设置外层循环最大次数

xor dl,dl;dl作为记录进行了几趟排序,初始化为0

mov temp,10h;temp判断排序是否完成,初始化为非零数

p1:

cmp temp,0;判断temp是否为0

jz p4;temp为0,则跳转结束循环

mov temp,0       ;每趟外循环,都将temp设置为0

mov cx,bx;设置内层循环次数

lea di,aa

p2:

mov al,[di];取出数据

cmp al,[di+1];和下一个数据比较

jle p3;<=跳转

mov temp,1;交换2个数,就将temp设置为1

xchg al,[di+1];交换2数

mov [di],al

p3:

inc di;di指向下个数据

loop p2;继续本趟排序

inc dl;计数+1

dec bx;外层循环-1

jnz p1;进行下趟排序

p4:

add dl,'0';输出进行排序次数

mov ah,2

int 21h

lea di,aa

mov cx,10

mov dl,10

mov ah,2

int 21h

p5:

mov dl,[di];输出数组

add dl,'0'

mov ah,2

int 21h

inc di

mov dl,' '

mov ah,2

int 21h

loop p5

MOV AH,4CH

INT 21H

CODES ENDS

END START


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: