学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

求改一道排序题,谢谢。

求改一道排序题,谢谢。

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
编译与连接都成功了。为什么 结果不对呢。

TOP

我又改了一下。可还是不对。为什么呢。哪位道友知道原因吗|

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

TOP

第一次是死循环
第二次  s3:  
             mov al,[bx]
             cmp al,[bx+1]
             ja s1
        s1: xchg al,[bx+1]
            xchg [bx],al
            inc bx
不管条件满足否,都执行S1跳转没意义

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

TOP

发新话题