I use l_code_addr. When you use asm module first parameter is store in r0 second in r1 ect...
My asm code do exactly same thing as your C code.
This is a pseudo code of mine :
r0 = (void *) 0x88000
r1 = r0
r0 = r1[4]
sp = *r1
jump(r0)
sp is the stack pointer (r13).