admin管理员组

文章数量:1357702

numbers DCD 60, 50, 40, 30, 20, 10 ; array
LDR R0, =numbers ;load numbers
MOV R1, #0; i
MOV R2, #5 ; nums.lenght - 1

OUTER_LOOP ; for loop
CMP R1, R2 
BGE DONE  ; if i >= nums.length -1 

LDR R3, [R0, R1, LSL #2] ; fetch i
ADD R4, R1, #1 ; i+ 1
LDR R5, [R0, R4 ,LSL #2]

CMP R3, R5 ; if nums[i] > num[i+1]
BLE SKIP_SWAP

STR R5, [R0, R1, LSL #2] ; swap num 1 = nums i +1
STR R3, [R0, R4, LSL #2] ; vice versa
 
SKIP_SWAP
ADD R1, R1, #1 ; i++
BAL OUTER_LOOP ; go back to loop



DONE

im trying to do bubble sort on a reverse array and it does push the 60 to the correct spot but stops right after, what do I do to change it so it keep going after 60?

本文标签: sortingBubble sort in Assembly (ARM)Stack Overflow