初学汇编。。请高手解个题。。。谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:31:43
把从8个单元开始的16位无符号数从小到大排列。。

;实现了从小到大排列并且完成了排序结果的十进制输出
data segment
str db 'The result:$'
a dw 21,2,100,56,99,120,7,95
data ends

code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax
;------------------------------
;冒泡排序核心代码
mov cx,8
dec cx
loop1:
mov di,cx
mov bx,0
loop2:
mov ax,a[bx]
cmp a[bx+2],ax
jge cotinue
xchg ax,a[bx+2]
mov a[bx],ax

cotinue:
add bx,2
loop loop2
mov cx,di
loop loop1
;------------------------------
mov dx,offset str
mov ah,09h
int 21h
call crlf
;将排序后的数据输出
mov si,0
m1:
mov bx,a[si]
call binidec
mov dl,20h
mov ah,02h
int 21h
cmp si,12
jg exit
add si,2
jmp m1

exit:
ret
main endp
;---------------------------------
bini