; p2_8.s ; Assembly program to toggle the LED0 ; EXPORT __Vectors EXPORT Reset_Handler AREA vectors, CODE, READONLY __Vectors DCD 0x20008000 ; Top of Stack DCD Reset_Handler ; Reset Handler PORTBDIR equ 0x41004480 PORTBOUTCLR equ 0x41004484 PORTBOUTSET equ 0x41004488 AREA PROG, CODE, READONLY Reset_Handler ldr r4, =0x40000000 ; make PB30 output ldr r5, =PORTBDIR str r4, [r5] L1 ldr r5, =PORTBOUTCLR ; clear PB30 to turn on LED0 str r4, [r5] ldr r0, =500 ; delay 500 ms bl delay ldr r5, =PORTBOUTSET ; set PB30 to turn off LED0 str r4, [r5] ldr r0, =500 ; delay 500 ms bl delay b L1 ; loop forever ; delay milliseconds in R0 delay ldr r1, =332 DL1 subs r1, r1, #1 bne DL1 subs r0, r0, #1 bne delay bx lr end