私のコードの問題は何ですか? 以下のコードを見ると、簡単な方法で昇順ソートをしようとしていますが、実行できません。
コードで使用する配列があります。事前に定義された配列には、配列の各セルにいくつかのメンバーが含まれています。したがって、並べ替えを試みています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
で頻繁にジャンプしているだけのようです。ちょっと無期限ループです。実際、実行してもエラーはありません。コードに問題がない場合、並べ替えられた配列を (最終的に) エクスポートとしてユーザーに出力するにはどうすればよいですか?L2
L3