GCC中的Arm汇编器调用

时间:2018-10-22 16:02:03

标签: c assembly arm

我正在尝试从C代码调用用asm编写的asm_uart_string()proc。 proc asm_uart_string()仅从r0寄存器中获取一个参数,它是要打印的字符串的地址。我正在尝试传递应打印的“ txt”变量的地址:

char txt[]="eeeeeeeeeeeeeeeee\r\n";
asm("ldr r0, %0" :: "m" (txt));
asm("bl asm_uart_string");

但是我没有得到想要的东西,因为objdump返回以下代码:

 7b4:   e59f3058        ldr     r3, [pc, #88]   ; 814 <main+0x3d0>
 7b8:   e5930000        ldr     r0, [r3]
 7bc:   eb0000bb        bl      ab0 <asm_uart_string>

我在用C代码内联asm方面没有太多经验,目前还不知道如何将“ txt”的地址正确传递给r0寄存器。有什么建议吗?

0 个答案:

没有答案