社区
汇编语言
帖子详情
简单问题,关于在C中内嵌ARM ASM....
sinon
2004-01-20 05:37:08
我想在C中内嵌ARM ASM取得ARM CPU中的寄存器(Rx)的值,请问如果实现?谢谢...
还有,有什么好的ARM编程的书籍可以推荐吗?谢谢
...全文
128
10
打赏
收藏
简单问题,关于在C中内嵌ARM ASM....
我想在C中内嵌ARM ASM取得ARM CPU中的寄存器(Rx)的值,请问如果实现?谢谢... 还有,有什么好的ARM编程的书籍可以推荐吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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工具名称,它的说明里应该有
__
asm
__ __volatile__
内嵌
汇编用法简述
作者:刘洪涛,华清远见嵌入式培训
中
心讲师,
ARM
ATC授权培训讲师。 __
asm
__ __volatile__
内嵌
汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__
asm
__ __volatile__
内嵌
汇编用法。因为我们华清远见教学平台是
ARM
体系结构的,所以下面的示例都是用
ARM
汇编。 带有C/C++表达式的内联汇编格式为: __
asm
__ __volatile__("Instruction List" : Output : Input : Clobber/Modify); 其
中
每项的概念及功能用法描述如下: 1、 __a
EDA/PLD
中
的__
asm
__ __volatile__
内嵌
汇编用法简述
作者:刘洪涛,华清远见嵌入式培训
中
心高级讲师,
ARM
ATC授权培训讲师。 __
asm
__ __volatile__
内嵌
汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__
asm
__ __volatile__
内嵌
汇编用法。因为我们华清远见教学平台是
ARM
体系结构的,所以下面的示例都是用
ARM
汇编。 带有C/C++表达式的内联汇编格式为: __
asm
__ __volatile__("Instruction List" : Output : Input : Clobber/Modify); 其
中
每项的概念及功能用法描述如下: 1、 _
3C2440
ARM
裸机 MMU代码(有bug)
发在csdn上的贴:http://topic.csdn.net/u/20120707/21/52fd37a8-55c9-4ae7-b151-84d16dfa232b.html?08264980597887188 我通过修改 韦东山《嵌入式LINUX应用开发完全手册》关于MMU那一张的代码,想在ADS环境下,裸跑MMU虚拟地址点灯,但没有成功,不知道错在哪,请高手指点。。。 思路是这样: 在韦东山书
中
: 1. 原来在书
中
用的是GNU下的编译环境,汇编语法不同于ADS环境下。 2. 书
中
程序是从NAND flash启动,通过代码实现a.初始化SDRAM。b.复制代码到SDRAM的物理地址0X30000000处。再设置页表,启动mmu,重设栈指针,跳转到0xB0004000,点灯。 我的s3c2440+ads环境下: 针对第一点,我修改了原来的代码。但有两个地方不是太明白。 第一个是,关于c
内嵌
汇编代码,有一句:mov r4, %0 不太明白 %0 是什么意思。看网上有人说,%0 实质是等于 r4, #0x30000000 不知道对不对。为什么是这样呢?! 第二个是,关于
内嵌
汇编代码的最后两句: : /* 无输出 */ : "r" (ttb) ); 不明白是什么意思。只知道把最后一句的 ");" 改成 "}"。 因为 __
asm
__(); 的语法结构在ads
中
编译不过,所 以我改成了 __
asm
{} 的形式。完整的代码再后面。 针对第二点,我用的3c2440+ads环境,从nor flash启动,代码直接下载到板子的SDRAM 0x30000000处。所以省去了这两步。
ARM
GCC Inline Assembler Cookbook
用于编写
arm
内嵌
汇编的详细文档,直接将汇编代码通过
asm
()嵌入到C/C++代码
中
,也可以用于neon。
GCC 入门剖析以及嵌入式汇编
介绍了linux下的编译器gcc的基本原理,以及嵌入式汇编编译的过程
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章