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

冒泡法排序,不知哪里有问题-----已解决

sudosu 发布于 2011-11-10 18:27, 1041 次点击
这是我写的源程序,用emu8086可以正确编译调试,结果也没问题.
但采用UltraEdit编译就木有结果.这是什么问题?
P.S.原来是一百个(此时CX=100)数据,为了阅读方便我改成10个了.
话说emu8086虽然调试极为方便但速度太慢了,100个数据整了近10分钟才出结果.这是唯一让人人郁闷的地方╮(╯_╰)╭
程序代码:
DATAS SEGMENT  ;以下源程序实现下列100个数据由大到小的排列
    ARRAY DW 259FH,1923H,3241H,1000H,5BC7H,1CF2H,0FFFFH,1DADH,9ADFH,4E17H
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV CX,10  ;求实际循环次数,CX作为里层循环计算器
    DEC CX

LP1:  MOV DX,CX ;DX赋初值作为外层循环计数器
         MOV SI,0H    ;SI作为数据指针置0
LP2:  MOV AX, [ ARRAY+SI ] ;取第一个数给AX
         CMP AX,[ARRAY+SI+2] ;与下一个数比较
         JNB LP3                          ;AX大于或等于第二个数则转跳
         XCHG AX,[ARRAY+SI+2];若小于则互换,大的数放低字节
         MOV [ ARRAY+SI ],AX    ;小的数放高字节
LP3:  ADD SI,2                          ;SI加2,指向下一个数
         DEC DX                            ;修改外循环次数
         JNZ  LP2  ;如果DX不等于0,则跳转至LP2
         LOOP LP1
  MOV AX,4C00H
  INT 21H
  CODES ENDS
END START



[ 本帖最后由 sudosu 于 2012-12-5 13:22 编辑 ]
7 回复
#2
zklhp2011-11-10 18:42
UltraEdit编译 这是个啥

没结果是正常的 你里面也没写输出的东西罢 怎么能知道结果对不对呢


[ 本帖最后由 zklhp 于 2011-11-10 18:46 编辑 ]
#3
sudosu2011-11-10 18:46
回复 2楼 zklhp
就是这个,一款万能编辑器

#4
编程的乐趣2011-11-10 18:47
#5
zklhp2011-11-10 18:48
以下是引用sudosu在2011-11-10 18:46:27的发言:

就是这个,一款万能编辑器

那 编辑器 怎么能 【编译】 呢?
#6
sudosu2011-11-10 18:49
回复 2楼 zklhp
用emu8086仿真可以查看运行前后的数组.
可以直接看出结果.
这是这两款软件的操作界面:http://hiphotos.baidu.com/%C0%CF%D2%AF%B7%FB/pic/item/4613e782969937cb6e811960.jpg
p.s.我怎么发不了图片格式附件?


[ 本帖最后由 sudosu 于 2011-11-10 18:53 编辑 ]
#7
zklhp2011-11-10 18:51
以下是引用sudosu在2011-11-10 18:49:59的发言:

用emu8086仿真可以查看运行前后的数组.
可以直接看出结果.
p.s.我怎么发不了图片格式附件?

对 但是实际环境中没法仿真

发图问题是论坛对浏览器支持的问题罢 貌似我现在的浏览量也发不了。。
#8
zaixuexi2011-11-15 13:41
ultraedit里用脚本调用了一下asm compiler,asm link配一下输入输出文件。ultraedit本身就是个编辑器。"万能的编辑器",只是你知其然,而不知其所以然而已。我反正是不信。
1