Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 汇编程序以特殊方式排序?请帮忙?_Arrays_Sorting_Assembly - Fatal编程技术网

Arrays 汇编程序以特殊方式排序?请帮忙?

Arrays 汇编程序以特殊方式排序?请帮忙?,arrays,sorting,assembly,Arrays,Sorting,Assembly,8086汇编语言程序,对数组进行如下排序: 数组中的最小值应放在第一个单元格中。 最后一个单元格中的第二个最小值。 数组第二个单元格中的第三个最小值。 第四个最小值,位于 大堆 •继续上述程序,直到阵列完全排序。 注意,在上述排序技术中,初始数组中的大值 将最终放置在阵列的中间部分 以下是我的代码,但按正常方式进行排序: org 100h .MODEL SMALL .DATA TABLE DB 9,2,6,8,5,1

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
替换:

mov cl, val1
作者:


通过这种方式,它将val1的内容从数字5移动到cl。在上面的代码中,它只会将val1到cl的偏移量移动到与lea cl,val1相同的位置。

而不是试图设计一种以这种方式工作的排序算法,我建议采用两个阶段的方法——1以正常方式对列表进行排序,然后2将排序后的列表重新排列到所需的结构中。即使在更高级的语言中,尝试在一个过程中同时完成这两个任务也可能会有点挑战性,并且可能不会表现得很好……这对于MASM、TASM或JWASM是不正确的。我不知道还有哪一个汇编程序可以处理。模型很小。
mov cl, [val1]