0

私のコードの問題は何ですか? 以下のコードを見ると、簡単な方法で昇順ソートをしようとしていますが、実行できません。

コードで使用する配列があります。事前に定義された配列には、配列の各セルにいくつかのメンバーが含まれています。したがって、並べ替えを試みていますarr1

datasg segment para 'data'
  arr1 db 8,2,7,4,3
datasg ends

codesg segment para 'code'   

main proc far
  Assume cs:codesg, ds:datasg
    mov ax, datasg
    mov ds, ax
    mov es, ax
    mov bx, OFFSET arr1
    mov cx, 5
    mov dx, cx
    L1:      
       mov si, 0
       mov ax, si
       inc ax
       mov di, ax
       mov dx, cx
    L2:
       mov al, [bx][si]
       cmp al, [bx][di]
       jg L4
    L3:
       inc si
       inc di
       dec dx
       cmp dx, 00
       je L1
       jg L2
    L4:
       mov al, [bx][si]
       mov ah, [bx][di]
       mov [bx][si], ah
       mov [bx][di], al
       inc si
       inc di       
       dec dx
       cmp dx, 00
       je L1
       jg L2
    Exit:
       mov ax, 4c00h
       int 21h
main endp
codesg ends
End main

使用環境はemu8086です。

編集1:

、 、の間L1で頻繁にジャンプしているだけのようです。ちょっと無期限ループです。実際、実行してもエラーはありません。コードに問題がない場合、並べ替えられた配列を (最終的に) エクスポートとしてユーザーに出力するにはどうすればよいですか?L2L3

4

0 に答える 0