8086汇编语言程序,按如下方式对数组进行排序: 数组中的最小值应放在第一个单元格中。 最后一个单元格中的第二个最小值。 数组的第二个单元格中的第三个最小值。 放在最后一个单元格中的第四个最小值 阵列。 •上述过程将继续,直到阵列完全排序。 注意,在上述排序技术中,初始数组中的值较大 最终将被放置在数组的中间部分
这是我的代码,它以正常方式排序:
org 100h
.MODEL SMALL
.DATA
TABLE DB 9,2,6,8,5,1
B DB 6 DUP(0)
VAL1 DB 5
NL DB ' ','$'
.CODE
MOV AX,@DATA
MOV DS,AX
LEA BX,TABLE
MOV DL,VAL1
LBL1:
LEA BX,TABLE
MOV CL,5
LBL2:
MOV AL,[BX]
MOV DL,[BX+1]
CMP AL,DL
JB LBL3
MOV [BX],DL
MOV [BX+1],AL
LBL3:
INC BX
LOOP LBL2
MOV DL,VAL1
DEC DL
MOV VAL1,DL
CMP DL,00
JNE LBL1
MOV CL,6
LEA BX,TABLE
DISPLAY:
LEA DX,NL
MOV AH,09H
INT 21H
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H
INC BX
INC BX
LOOP DISPLAY
MOV AH,4CH
INT 21H
ret
答案 0 :(得分:0)
替换:
mov cl, val1
由:
mov cl, [val1]
这样它将val1(数字5)的内容移动到cl。在上面的代码中,它只会将val1的偏移量移动到cl(与lea cl,val1相同)。