毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

汇编 字符串冒泡排序源代码

更新时间:2012-12-18:  来源:毕业论文
assume    cs:code,ds:data data    segmentmsg1    db    'Before sort:$'crlf    db    0dh,0ah,'$'msg2    db    'After sort :$'buff    db    16 dup (0) data    ends code    segmentstart:     mov ax,data     mov ds,ax    mov dx,offset msg1     mov ah,9     int 21h     mov cx,0     mov di,offset buff input:         mov ah,1     int 21h     cmp al,0dh     jz ok     mov [di],al    inc di    inc cx    cmp cx,16     jz ok     jmp input ok:         mov dx,offset crlf     mov ah,9     int 21h     mov dx,offset msg2     mov ah,9     int 21h     dec cx    mov si,offset buff s:         push cx    mov di,si    inc dis1:         mov al,[si]     cmp al,[di]     jb jx     xchg al,[di]     mov [si],aljx:             inc di    loop s1       inc si    pop cx    loop s       mov byte ptr [si+1],24h     mov dx,offset buff     mov ah,9     int 21h               mov ah,4ch     int 21h code    ends end    start 从输入字符串的过程可以看到,最后bx的值等于字符串中最后一个字符的下一个单元的地址,相当于C语言中,A[0]到A[n-1]是你输入的n个字符, 现在BX=n, A[n]中不属于你的字符串了。

冒泡排序的比较中, 若用A[i]与A[i+1]比, 则i的循环范围是0到n-2, i=n-1时, A[i+1]没意义.

所以你的程序中, 下面的程序段有问题:
 ADD SI,1 ;准备比较下一组数
  CMP SI,BX
  JGE ADD_DI
  JMP COMPARE
相当于
for(i=0; i<n; i++)
  if(A[i]>A[i+1]) ......

上一页  [1] [2] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。