我的代码中有什么问题?如果您查看下面的代码,我正在尝试以简单的方式进行升序排序,但它无法运行。
我们在代码中使用了一个数组。它是一个预定义的数组,包括数组的每个单元格上的几个成员。所以我们正在尝试排序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
,有点无限循环。事实上,运行时没有错误。如果代码没有问题,我如何将排序数组(最终)打印给用户作为导出?