首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从ARM汇编语言调用c函数printf?

从ARM汇编语言调用c函数printf?
EN

Stack Overflow用户
提问于 2018-08-24 01:02:48
回答 2查看 0关注 0票数 0

我需要从ARM汇编语言例程调用printf。我写了一个执行相同操作的ac程序(printf("%d.%d",1,2))。我反汇编了编译器输出,但格式字符串的传递方式并不明显。你们有没有一个代码的例子来做到这一点?

这是我用来尝试查看如何调用printf的测试例程。

代码语言:javascript
复制
 #include <stdio.h>
 #include <stdlib.h>

 int main(void) {
         printf("%d.%d\n",1,2);
         return EXIT_SUCCESS;
 }

我对主程序的反汇编如下所示:

代码语言:javascript
复制
000081c4 <main>:
81c4:       e1a0c00d        mov     ip, sp
81c8:       e92dd800        stmdb   sp!, {fp, ip, lr, pc}
81cc:       e24cb004        sub     fp, ip, #4      ; 0x4
81d0:       e59f0014        ldr     r0, [pc, #20]   ; 81ec <.text+0x11c>
81d4:       e3a01001        mov     r1, #1  ; 0x1 
81d8:       e3a02002        mov     r2, #2  ; 0x2
81dc:       eb000212        bl      8a2c <_IO_printf>
81e0:       e3a03000        mov     r3, #0  ; 0x0
81e4:       e1a00003        mov     r0, r3
81e8:       e89da800        ldmia   sp, {fp, sp, pc}
81ec:       00060120        andeq   r0, r6, r0, lsr #2

我看到_IO_printf例程的分支,但我没有看到如何传递格式字符串。

EN

Stack Overflow用户

发布于 2018-08-24 10:20:51

你的代码等同于:

代码语言:javascript
复制
const char formatString[] = "%d.%d";
printf(&formatString[0], 1, 2);
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档