Modify SP register and PC register in Cortex-M1 using Keil


I'm planning to do a bootloader for a Cortex-M1 processor but i'm having serious problems.

First of all, the Keil says it expect a ")" when writing this type of inline assembly:

        __asm__ __volatile__("mov sp,%0\n\t"
                "bx %1\n\t"
                : /* no output */
                : "r" (sp), "r" (pc)
                : "sp");
So it seems that it's not recognizing the assembly code.
On the other hand I just read that you cannot modify directly the value of the SP and PC register with inline assembly.
So I was wondering if someone could give me some hints on how to modify these registers to be able of code the bootloader.
Thanks in advance,
More questions in this forum