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