__raw_readl与__raw_readq

qixing1115 2015-05-12 08:45:58
读32位的数代码如下:
static inline u32 __raw_readl(const volatile void *addr)
{
u32 val;
asm volatile("ldr %1, %0"
: "+Qo" (*(volatile u32 *)addr),
"=r" (val));
return val;
}

请问64位的怎么读,CPU是支持64位的,只是目前没有代码,请问按这个格式 的内嵌汇编怎么写
...全文
506 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2015-06-26
  • 打赏
  • 举报
回复
没搞过,不过改成u64类型可以编译执行成功吗? 实在不行可以读2次32位地址,当然这个是下下策。
qixing1115 2015-05-21
  • 打赏
  • 举报
回复
大神回复下吧
qixing1115 2015-05-12
  • 打赏
  • 举报
回复
http://mengren425.blog.163.com/blog/static/569039312015227114039975/ 这里有参数函数,但是也是没有64位的,大家帮帮忙
qixing1115 2015-05-12
  • 打赏
  • 举报
回复
static inline u16 __raw_readw(const volatile void *addr) { u16 val; asm volatile("ldrh %1, %0" : "+Q" (*(volatile u16 *)addr), "=r" (val)); return val; } 另外读16位的也给大家参照下,32位和16位读是没有问题的

21,459

社区成员

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

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