社区
Linux_Kernel
帖子详情
在ARM文章经常看到[1:0]和[31:2]这是什么意思啊.
yanjinbin0
2011-02-25 05:08:12
比如有这样一句话:
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC
[1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???)
[31:2]是什么意思呢
...全文
529
8
打赏
收藏
在ARM文章经常看到[1:0]和[31:2]这是什么意思啊.
比如有这样一句话: 寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC [1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???) [31:2]是什么意思呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hawk198
2011-02-26
打赏
举报
回复
受教了,原来是这样的啊,我以为只有0:31这样才能这样表示
bluejays
2011-02-26
打赏
举报
回复
如果一个十进制数是100(10的平方)的倍数,显然他(十进制)的最低两位都是0。
同样的
如果一个二进制数是4(2的平方)的倍数,那么他(二进制)的最低两位都是0。
二进制、十六进制玩多了,这些就很自然了。
yanjinbin0
2011-02-26
打赏
举报
回复
楼上的,有个疑问,
你怎么根据PC值是4的倍数,而推断出最底两位肯定为0呢.
看到某书上说:
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC.
没讲这两位是做什么用的。
bluejays
2011-02-25
打赏
举报
回复
1
PC是32位的(31:0)。ARM状态下,指令是32位的,指令地址都是4字节对齐,所以PC值肯定是4的倍数,所以最低两位(位[1:0])肯定为0,前面的30位位[31:2]用于保存PC
如果是thumb状态,指令是16位的,指令地址是2字节对齐。
李迟
2011-02-25
打赏
举报
回复
楼主说对了。这些形式经常在芯片手册中看到。
哈皮歪詩
2011-02-25
打赏
举报
回复
You are right.
[31:2], bit 31 down to bit 2
[1:0] the lower two bits
ARM
汇编学习笔记(栈回溯-2)
https://www.leadroyal.cn/p/11
31
/ 本系列
文章
共三篇。本文是第二篇,讲 ELF 文件如何存放和使用
arm
ehabi。关键词:.
arm
.exidx,.
arm
.extab。 ELF .
ARM
.exidx 和 .
ARM
.extab 的位置 Section角度:很久以前,readelf -S时候一直不理解这两个 section 是做什么的,占空间,放的不是汇编,IDA 打开,里面也是一团意义不明的 data,总觉得没什么用。 1 2 3 4 5 6 7 .
编译ijkplayer遇到的问题“/libavutil/
arm
/asm.S:50:9: error: unknown directive”的解决
ijkplayer在ios下的编译看这篇
文章
https://www.jianshu.com/p/9743a68c2939就可以了。编译ffmpeg库的时候会遇到
arm
v7架构无法成功,网上的说法几乎都是建议在compile-ffmpeg.sh中删除
arm
v7,修改为:FF_ALL_ARCHS_IOS8_SDK="
arm
64 i386 x86_64" 然后再编译。 但这样在之后lipo合并...
ubuntu:
arm
-linux-gcc: error: No such file or directory问题总结
ubuntu编译下路径错误的问题总结:
arm
-linux-gcc: error: No such file or directory 出现这个问题实际上有两种可能,百度了一下大部分人只谈到第一种情况。而我遇到的问题是这种情况无法解决的。因此决定写下这篇
文章
以供后人参考: ①64库与32库不兼容性,解决方法很简单。只要安装lib32ncurses5或者ia32-libs库即可。 ②这也是我被这个问题...
ARM
汇编基础速成1:
ARM
汇编以及汇编语言基础介绍
译文声明本文是翻译
文章
,
文章
原作者,
文章
来源:azeria-labs.com原文地址:https://azeria-labs.com/writing-
arm
-assembly-part-1/译者:arnow117预估稿费:200RMB投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿写在前面欢迎来到
ARM
汇编基础教程,这套教程是为了让你可以在
ARM
架构下进行漏洞利用打基础的。在我...
交叉编译opencv在
ARM
板子上运行时出现的问题 libgomp.so.1: cannot open shared object file: No such file or directory
最近在rk3328上部署了一个模型,模型推理需要opencv的支持,可执行程序在PC上交叉编译完后,push到板子上运行时出现了如下报错 error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory 网上搜了一下好像没有相关解决记录,所以特别记录一下,以便有需要的人能搜到,避免走太多弯路。 检查了一下,发现板子上/usr/lib中没有这个库,但是发现
Linux_Kernel
4,436
社区成员
17,459
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章