简单问题,关于在C中内嵌ARM ASM....

sinon 2004-01-20 05:37:08
我想在C中内嵌ARM ASM取得ARM CPU中的寄存器(Rx)的值,请问如果实现?谢谢...

还有,有什么好的ARM编程的书籍可以推荐吗?谢谢
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinon 2004-04-21
  • 打赏
  • 举报
回复
zhangsoarcs的信息很有用,可惜对我的情况作用不大....

按编幅分吧...
sinon 2004-04-21
  • 打赏
  • 举报
回复
谢谢各位的回复,其实我的情况比较别扭.我最终采取了别的做法了.

该结贴了...
zhangsoarcs 2004-04-09
  • 打赏
  • 举报
回复
Inline的是用:
__asm{
...
...
...
}
不过你要返回值,还是用函数比较好.
在汇编文件中定义函数:
EXPORT Function_Name

Function_Name FUNCTION
stmdb sp!, {r0 - r2, r14}; 保存现场
str r1, [r0] ;返回R1的值, 返回值通常保存在R0中
ldmia sp!, {r0 - r2, r14} ;恢复现场
mov pc, lr ;返回
ENDFUNC

再在要调用的地方做如下操作:
extern void Function_Name(unsigned *buff);

..........
unsigned returnR1;
Function_Name(&returnR1);;将R1存在returnR1中

OVER!

roselu 2004-04-09
  • 打赏
  • 举报
回复
up
wangwubian 2004-04-09
  • 打赏
  • 举报
回复
up
ant0702 2004-02-02
  • 打赏
  • 举报
回复
楼主的意思是要汇编这一部分的程序代码吗
W32API 2004-02-01
  • 打赏
  • 举报
回复
如果你用 KEIL C ,可以看看它的用户手册,
插入汇编的标记是
#pragma asm
......
#pragma endasm

这个是编译器提供的预处理语句,看你用的 C 编译器的说明
sinon 2004-01-21
  • 打赏
  • 举报
回复
谢谢回复...

主要我是想知道 {....} 的内容...

和简单就是一个小函数....将R0~R15的值保存于变量(数组)中...然后返回结果...
只是我不懂ARM 的ASM...

我是用CodeWarrior...说明现在还没有提及ARM ASM方便的...:(
kugou123 2004-01-20
  • 打赏
  • 举报
回复
好像是用
__asm{
...
...
...
}
结构嵌套。
BadEnglish 2004-01-20
  • 打赏
  • 举报
回复
恐怕这种问题先要说出你的C工具名称,它的说明里应该有

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧