/* * p2_7.s * Assembly program to toggle the LED0 */ .section .text .global main .equ PORTBDIR, 0x41004480 .equ PORTBOUTCLR, 0x41004484 .equ PORTBOUTSET, 0x41004488 .thumb_func main: 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: sub r1, r1, #1 bne DL1 sub r0, r0, #1 bne delay bx lr .end