Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
my_leds.s@2:968db132481b, 2020-01-04 (annotated)
- 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?
| User | Revision | Line number | New 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 |