J.P. Armstrong
/
IntToBinaryAssembly
Assembly procedure that represents binary using the LEDs on the mbed.
binasm.s@0:13e4e935bed6, 2011-01-27 (annotated)
- Committer:
- jp
- Date:
- Thu Jan 27 06:24:28 2011 +0000
- Revision:
- 0:13e4e935bed6
- Child:
- 2:a81c9bc37084
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jp | 0:13e4e935bed6 | 1 | AREA |.text|, CODE, READONLY |
jp | 0:13e4e935bed6 | 2 | EXPORT binasm |
jp | 0:13e4e935bed6 | 3 | |
jp | 0:13e4e935bed6 | 4 | binasm PROC |
jp | 0:13e4e935bed6 | 5 | PUSH {R4, LR} |
jp | 0:13e4e935bed6 | 6 | |
jp | 0:13e4e935bed6 | 7 | MOV R1, #0 |
jp | 0:13e4e935bed6 | 8 | MOV R2, #0 |
jp | 0:13e4e935bed6 | 9 | MOV R3, #0 |
jp | 0:13e4e935bed6 | 10 | |
jp | 0:13e4e935bed6 | 11 | ; Load GPIO Port 1 base address in register R1 |
jp | 0:13e4e935bed6 | 12 | LDR R1, =0x2009C020 ; 0x2009C020 = GPIO port 1 base address |
jp | 0:13e4e935bed6 | 13 | LDR R4, =leds |
jp | 0:13e4e935bed6 | 14 | |
jp | 0:13e4e935bed6 | 15 | ;CLEAR LEDS |
jp | 0:13e4e935bed6 | 16 | MOV.W R2, #0xB40000 |
jp | 0:13e4e935bed6 | 17 | STR R2, [R1,#0x1C] |
jp | 0:13e4e935bed6 | 18 | |
jp | 0:13e4e935bed6 | 19 | ADD R3, R3, #12 ; COUNTER FOR LOOP |
jp | 0:13e4e935bed6 | 20 | ADD R0, R0, #1 ; INCREMENT PARAMETER BY 1 |
jp | 0:13e4e935bed6 | 21 | |
jp | 0:13e4e935bed6 | 22 | loop |
jp | 0:13e4e935bed6 | 23 | ; CLEAR THE CARRY FLAG |
jp | 0:13e4e935bed6 | 24 | ADC R0, R0, #0 |
jp | 0:13e4e935bed6 | 25 | |
jp | 0:13e4e935bed6 | 26 | LDR.W R2, [R4, R3] |
jp | 0:13e4e935bed6 | 27 | LSRS R0, R0, #1 |
jp | 0:13e4e935bed6 | 28 | |
jp | 0:13e4e935bed6 | 29 | STRCC R2, [R1,#0x1C] ; if==0, clear LED bit |
jp | 0:13e4e935bed6 | 30 | STRCS R2, [R1,#0x18] ; if==1, set LED bit |
jp | 0:13e4e935bed6 | 31 | |
jp | 0:13e4e935bed6 | 32 | CMP R3, #0 |
jp | 0:13e4e935bed6 | 33 | SUB R3, R3, #4 |
jp | 0:13e4e935bed6 | 34 | BNE loop |
jp | 0:13e4e935bed6 | 35 | |
jp | 0:13e4e935bed6 | 36 | POP {R4, PC} |
jp | 0:13e4e935bed6 | 37 | ENDP |
jp | 0:13e4e935bed6 | 38 | |
jp | 0:13e4e935bed6 | 39 | AREA |.data|, DATA, READWRITE |
jp | 0:13e4e935bed6 | 40 | EXPORT leds |
jp | 0:13e4e935bed6 | 41 | |
jp | 0:13e4e935bed6 | 42 | ;BIT MASK FOR LED1...LED4 |
jp | 0:13e4e935bed6 | 43 | |
jp | 0:13e4e935bed6 | 44 | leds DCD 0x040000 |
jp | 0:13e4e935bed6 | 45 | DCD 0x100000 |
jp | 0:13e4e935bed6 | 46 | DCD 0x200000 |
jp | 0:13e4e935bed6 | 47 | DCD 0x800000 |
jp | 0:13e4e935bed6 | 48 | |
jp | 0:13e4e935bed6 | 49 | ALIGN |
jp | 0:13e4e935bed6 | 50 | END |