冒泡法排序,不知哪里有问题-----已解决
这是我写的源程序,用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 编辑 ]