汇编冒泡排序,数组题
Posted Afololer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编冒泡排序,数组题相关的知识,希望对你有一定的参考价值。
数组题
- cx应为长度-1
- 二层循环要保存cx,si
把数组中的0去掉,其他往前移动,最后面补0
DATAS SEGMENT
;此处输入数据段代码
ar db 6,33H,30H,30H,33H,30H,33H,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov si,1
mov cl,ar
dec cl
L1:
PUSH SI
push cx
L2:
mov bl,ar[si]
cmp bl,30H
jnz l3 ;不是0
xchg bl,ar[si+1]
mov ar[si],bl
L3:
inc si
LOOP l2
pop cx
POP SI
loop L1
lea dx,ar+1
mov ah,9
int 21H
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
冒泡排序
DATAS SEGMENT
;此处输入数据段代码
array1 db 'h','a','d','c','t','b','y','l','$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov cx,7
lea bx,array1
mov si,0
L1:
;每一轮由开始比较,最大的沉到最后面
push si
push cx
L2:
mov al,array1[si]
cmp al,array1[si+1]
jb L3 ;小于
xchg al,array1[si+1]
mov array1[si],al
L3:
inc si
LOOP L2
pop cx
pop si
LOOP L1
lea dx,array1
mov ah,09h
int 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
以上是关于汇编冒泡排序,数组题的主要内容,如果未能解决你的问题,请参考以下文章