61 lines
991 B
ArmAsm
61 lines
991 B
ArmAsm
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
|
|
|