Мне нужно отсортировать массив, заданный ARY1, отсортировать его в функции SORT, а затем сохранить отсортированный массив в ARY1S. Я решил не включать ARY2, но он будет работать идентично. SORT должен работать как для ARY1, так и для ARY2. Я взял алгоритм пузырьковой сортировки (С++) и изо всех сил пытался преобразовать его в сборку, но столкнулся с ошибками.
Мой 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
Кроме того, если кто-то может помочь со строкой кода, которую я прокомментировал, она не работает. Подсказка синтаксической ошибки.