ARM assembly language

view story

http://forum.allaboutcircuits.com – guys im new to this stuff, and this is really confusing me .section .rodata label1: .asciz "Hello World" .text .global main main: sub sp, sp, #4 str lr, [sp, #0] ldr r0, = label1 bl puts ldr lr, [sp, #0] add sp, sp, #4 mov r0, #0 mov pc, lr why do we have to store 'lr'?????? why cant we load the string directly to the register and print it????????? (Embedded)