| RSEG ICODE:CODE | |
| EXTERN vSetErrorLED | |
| PUBLIC vSetAndCheckRegisters | |
| vSetAndCheckRegisters: | |
| /* Fill the general purpose registers with known values. */ | |
| mov r11, #10 | |
| add r0, r11, #1 | |
| add r1, r11, #2 | |
| add r2, r11, #3 | |
| add r3, r11, #4 | |
| add r4, r11, #5 | |
| add r5, r11, #6 | |
| add r6, r11, #7 | |
| add r7, r11, #8 | |
| add r8, r11, #9 | |
| add r9, r11, #10 | |
| add r10, r11, #11 | |
| add r12, r11, #12 | |
| /* Check the values are as expected. */ | |
| cmp r11, #10 | |
| bne set_error_led | |
| cmp r0, #11 | |
| bne set_error_led | |
| cmp r1, #12 | |
| bne set_error_led | |
| cmp r2, #13 | |
| bne set_error_led | |
| cmp r3, #14 | |
| bne set_error_led | |
| cmp r4, #15 | |
| bne set_error_led | |
| cmp r5, #16 | |
| bne set_error_led | |
| cmp r6, #17 | |
| bne set_error_led | |
| cmp r7, #18 | |
| bne set_error_led | |
| cmp r8, #19 | |
| bne set_error_led | |
| cmp r9, #20 | |
| bne set_error_led | |
| cmp r10, #21 | |
| bne set_error_led | |
| cmp r12, #22 | |
| bne set_error_led | |
| bx lr | |
| set_error_led: | |
| push {r14} | |
| ldr r1, =vSetErrorLED | |
| blx r1 | |
| pop {r14} | |
| bx lr | |
| END | |