Sam Vilmenay / Mbed 2 deprecated AssemblySort

Dependencies:   mbed

Committer:
samvilm
Date:
Sat Jan 04 12:34:04 2020 +0000
Revision:
2:968db132481b
Sorts array of numbers in assembly language. Also sorts same array in C to compare and ensure same sorted array is returned.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samvilm 2:968db132481b 1 AREA asm_demo, CODE, READONLY
samvilm 2:968db132481b 2 EXPORT my_leds
samvilm 2:968db132481b 3 my_leds
samvilm 2:968db132481b 4 PUSH {R1, R2, R3, R4, LR}
samvilm 2:968db132481b 5 LDR R1, =0x2009C020 ; loading the base.
samvilm 2:968db132481b 6 AND R4, R0, #8 ;take biggest bit
samvilm 2:968db132481b 7 AND R3, R3, #0
samvilm 2:968db132481b 8 ORR R3, R3, R4 ;put in R3
samvilm 2:968db132481b 9 LSL R3, R3, #1 ;shift for spacing for pins
samvilm 2:968db132481b 10 AND R4, R0, #6 ;take middle bits
samvilm 2:968db132481b 11 ORR R3, R3, R4 ;put in R3
samvilm 2:968db132481b 12 LSL R3, R3, #1 ;shift for spacing for pins
samvilm 2:968db132481b 13 AND R4, R0, #1 ;take first bit
samvilm 2:968db132481b 14 ORR R3, R3, R4 ;put in R3
samvilm 2:968db132481b 15 LSL R3, R3, #18 ;shift to pin location in hex
samvilm 2:968db132481b 16 STR R3, [R1, #0x18] ;turns on led with FIOSet
samvilm 2:968db132481b 17
samvilm 2:968db132481b 18 BL wait ; Call to wait
samvilm 2:968db132481b 19 STR R3, [R1, #0x1C] ;clears LED with FIOClear
samvilm 2:968db132481b 20 POP {R1, R2, R3, R4, LR}
samvilm 2:968db132481b 21 BX LR
samvilm 2:968db132481b 22 ALIGN ; End of my_leds function
samvilm 2:968db132481b 23
samvilm 2:968db132481b 24 wait
samvilm 2:968db132481b 25 PUSH {R1, R2}
samvilm 2:968db132481b 26 MOV.W R1, #1
samvilm 2:968db132481b 27 LDR R2, =5000000
samvilm 2:968db132481b 28 ; Omitted loop code goes here
samvilm 2:968db132481b 29 loop_entry
samvilm 2:968db132481b 30 CMP R1, R2
samvilm 2:968db132481b 31 BGT loop_exit
samvilm 2:968db132481b 32 ADD R1,R1, #1
samvilm 2:968db132481b 33 B loop_entry
samvilm 2:968db132481b 34 loop_exit
samvilm 2:968db132481b 35 POP {R1, R2}
samvilm 2:968db132481b 36 BX LR ; Return from wait
samvilm 2:968db132481b 37 ALIGN
samvilm 2:968db132481b 38 END