注册 登录
编程论坛 汇编论坛

[求助]请教一个用冒泡法对几个数排序的问题

痛苦并快乐的 发布于 2006-10-30 20:45, 1143 次点击

本人刚开始学习汇编,遇到一道题目,
对几个数3,-4,5,8,-9,28进行从大到小的排序,并显示(要求用冒泡法)
我编的程序如下。编译的时候出错了,请大侠指点哈,在下感激不尽!!

data segment
m dw 3,-4,5,8,-9,28
n equ ($-m)/2
data ends
code segment
assume cs:code ds:data
start: mov ax,data
mov ds,ax
mov cx,n
dec cx
loop1: mov dx,cx
mov bx,0
loop2: mov bx,offset m
cmp ax,offset[bx+2]
jge l
xchg ax,offset[bx+2]
mov offset[bx],ax
l: add bx,2
dec cx
jne loop2
mov cx,dx
loop loop1
mov ah,4ch
int 21h
code ends
end start

4 回复
#2
srl99732006-10-30 21:02
start: mov ax,data
mov ds,ax
mov cx,n
dec cx
loop1: mov dx,cx
mov si,0
mov bx,si
;;加入

loop2: mov bx,offset [bx] ;;改为 mov ax,m[bx]
cmp ax,offset[bx+2] ;;改为cmp ax,m[bx+2]
jge l
xchg ax,offset[bx+2];; xchg ax,m[bx+2]
mov offset[bx],ax ;; mov m[bx],ax
l: add bx,2
dec cx
jne loop2
add si,2
mov cx,dx
loop loop1
mov ah,4ch
int 21h
code ends
end start
#3
痛苦并快乐的2006-10-30 21:08
谢谢了,我试下行不行
#4
痛苦并快乐的2006-10-30 21:14
改了后好象仍发现有错误哈:
cannot address with segment register
请问上面的错误是什么意思啊?看不明白
#5
痛苦并快乐的2006-10-31 12:49

请高手指点!!
显示不出来啊!

1