Sorting 汇编语言Bubblesort

Sorting 汇编语言Bubblesort,sorting,assembly,bubble-sort,68000,Sorting,Assembly,Bubble Sort,68000,我必须对ARY1给出的数组进行排序,在sort函数中对其进行排序,然后将排序后的数组存储到ARY1中。我选择不包括ARY2,但它的工作原理相同。排序应该同时适用于ARY1和ARY2。我采用了bubblesort算法(C++),并尽最大努力将其转换为汇编,但我遇到了错误 MyD0是数组的长度 我的D1会是我吗 我的D2将是j 而D3是温度 以下是我的尝试(这不起作用),不仅仅是因为语法问题: ARY1 DC.B 7 //array size

我必须对ARY1给出的数组进行排序,在sort函数中对其进行排序,然后将排序后的数组存储到ARY1中。我选择不包括ARY2,但它的工作原理相同。排序应该同时适用于ARY1和ARY2。我采用了bubblesort算法(C++),并尽最大努力将其转换为汇编,但我遇到了错误

My
D0
是数组的长度

我的
D1
会是我吗

我的
D2
将是j

D3
是温度

以下是我的尝试(这不起作用),不仅仅是因为语法问题:

ARY1        DC.B 7       //array size    
            DC.B 56,-5,8,23,-9,18,4 //my array
ARY1S       DS.B 7      //storage size

SORT1       MOVEA.L #ARY1, A0  //moving values into A0               
            MOVEA.L #ARY1S, A1
            MOVE.B (A0)+, D0   //Storing size (7) into D0
            BSR SORT

SORT        CMP.B D0,D1
            BGE DONE

LOOP        CMP.B D0,D2
            BGE INC
            CMP (A1,D2),(A1,D1) //this is not compiling/wrong syntax
            BLE NOTLESS
            MOVE.B (A1,D2),D3
            MOVE.B (A1,D1),(A1,D2)
            MOVE.B D3,(A1,D1)

NOTLESS     ADDQ #1, D2
            BRA LOOP

INC         ADDQ #1, D1
            MOVE.B D1,D2
            BRA SORT

DONE        RTS
另外,如果有人能帮我处理我评论过的那行代码,那么它就不起作用了。提示语法错误

CMP(A1,D2),(A1,D1)//这不是编译/错误的语法

我建议您下载并使用。
在其中,您会发现
CMP
的唯一有效形式是
CMP,Dn
。换句话说,您必须首先将
(A1,D1)
处的值移动到
D
寄存器中,然后将其与
(A1,D2)
进行比较

试试这个:

  CMP.B A1,D2

  CMP.B A1,D1

哦,谢谢你,参考手册是这本书的两倍。而且,如果我将所有值移动到A0,那么A1中除了存储之外什么都没有,所以我必须将A0移动到A1中然后排序,还是将其排序到A0中然后移动到A1?