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

求改一道排序题,谢谢。

xiang092106 发布于 2007-12-31 14:33, 1053 次点击
assume cs:code,ds:data,ss:stack
  data segment
  A  db 32,44,1,34,56,7,42,8,96,31
  data ends
  stack segment
     db ?
  stack ends
 code segment
    start: mov ax,data
           mov ds,ax
           mov ax,stack
           mov ss,ax
           mov bx,0
           mov cx,8
           mov si,0
           
           mov al,0
        s:   push cx
             push bx
             sub cx,si
        s3:  
             mov al,[bx]
             cmp al,[bx+1]
             ja s1
            
             inc si
             pop bx
             pop cx            
           loop s
        s1: xchg al,[bx+di]
            xchg [bx],al
            inc bx
         loop s3
              mov ax,004ch
              int 21h
      code ends
      end start
编译与连接都成功了。为什么 结果不对呢。
2 回复
#2
xiang0921062007-12-31 15:15
我又改了一下。可还是不对。为什么呢。哪位道友知道原因吗|
assume cs:code,ds:data,ss:stack
  data segment
  A  db 32,44,1,34,56,7,42,8,96,31
  data ends
  stack segment
     db ?
  stack ends
 code segment
    start: mov ax,data
           mov ds,ax
           mov ax,stack
           mov ss,ax
           mov bx,0
           mov cx,9
           mov si,0
           mov al,0
        s:   push cx
             push bx
             sub cx,si
            mov cx,cx
        s3:  
             mov al,[bx]
             cmp al,[bx+1]
             ja s1
        s1: xchg al,[bx+1]
            xchg [bx],al
            inc bx
            loop s3     
             inc si
             pop bx
             pop cx            
        loop s
      
              mov ax,004ch
              int 21h
      code ends
      end start
#3
孤傲的狼2008-01-06 00:30
第一次是死循环
第二次  s3:  
             mov al,[bx]
             cmp al,[bx+1]
             ja s1
        s1: xchg al,[bx+1]
            xchg [bx],al
            inc bx
不管条件满足否,都执行S1跳转没意义

最好把自己的编程思想写出了,要不然改错程序很难的
1