这是老师布置得题,大家帮以下忙
;code by lys
assume cs:codesg,ds:datasg,ss:stack
datasg segment
s dw 1,3,8,5,-1,2,7,9,4,6
datasg ends
stack segment
dw 0,0,0,0,0,0
stack ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,12
mov cx,LENGTHOF s -1
L1: push cx
mov bx,0
mov cx,LENGTHOF s -1 ;这里cx=字符个数-1 !
L2:
mov ax,[bx]
cmp ax,[bx+2]
jle C1 ;有符号数用g,l 无符号数用a,b
xchg ax,[bx+2]
mov [bx],ax
C1:
add bx,2
loop L2
pop cx
loop L1
mov ax,4c00h
int 21h
codesg ends
end start
转载的哈, 你慢慢看...
输入的数据以空格为标记,表示一个新的数开始
将AX置0,一个新的数据输入的第一个字符转换为十进制后,将AX乘以10加以转换后的十进制保存在AX中,依次保存以后的几位数,遇到空格就表示这个数结束,将AX的数据保存到内存中
将全部数据保存完后,就可以利用上面的排序进行冒泡排序
如果还要将排好的数据输出,还要将每个数的每位转换 为ASCII码一个个输出