免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jjaing
打印 上一主题 下一主题

求助:arm语言 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2006-04-07 09:57 |只看该作者
原帖由 wenyon 于 2006-4-7 09:39 发表
没有问题在ARM中一个寄存器是32位

0x12345678是一个十六进制数每一个数字在寄存器中占4位

无符号立即数最大值是0xffffffff
有符号最大值0xefffffff


请达人指点是否正确


错误.~ 你看了前面的帖子了吗?

论坛徽章:
0
12 [报告]
发表于 2006-04-07 11:00 |只看该作者
谢谢phenix_yw 的回复。根据资料,这个32位数应该离散分布在2的32次方范围内。关键我想确认到底这个范围是由无限个小区间组成还是由有限个区间组成。
    如果是有限的区间,我想得到具体的值。

论坛徽章:
0
13 [报告]
发表于 2006-04-07 12:01 |只看该作者
0X12345678超过了立即数的范围吗?
管他立即数或者什么数  一个数是不是超出范围不是看它是多少位吗?以及它是有符号还是无符号
那么请问你们说的范围是什么范围
在ARM指令中常量的传输有两条伪指令

根据资料,这个32位数应该离散分布在2的32次方范围内。关键我想确认到底这个范围是由无限个小区间组成还是由有限个区间组成。
无限小区?怎么把2的32次方空间变成无限小区

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
14 [报告]
发表于 2006-04-07 13:29 |只看该作者
>>0X12345678超过了立即数的范围吗?
是的 如果用mov的话,会失败.

不用ldr str 指令的话.
mov 操作的立即数 只能是8位的 由循环右移偶数位得到.

"立即数;可以通过一个八位的数循环右移得到的数才是合法的立即数"

http://walzer.cnblogs.com/archive/2006/02/05/325610.aspx


要指出的是这是规定.  楼上的不是你凭空想象什么就是什么的.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
15 [报告]
发表于 2006-04-07 13:29 |只看该作者

论坛徽章:
0
16 [报告]
发表于 2006-04-07 15:19 |只看该作者
先充实下 再来了解

论坛徽章:
0
17 [报告]
发表于 2006-04-07 17:11 |只看该作者
请教:怎么判断一个立即数是由一个8位的常数循环移动偶数位而来
这个常数可不可以是0到255?
我看到一个这样的式子if(立即数%0xff)有效 else 无效
能不能解释下原理?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
18 [报告]
发表于 2006-04-07 17:27 |只看该作者
我错了,已编辑

[ 本帖最后由 gvim 于 2006-4-7 17:45 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2006-04-09 19:36 |只看该作者
那位兄弟是该多看点再来发表大论。

不过我的问题还是没人解答。望高手赐教啊

论坛徽章:
0
20 [报告]
发表于 2006-04-09 20:23 |只看该作者
这个数要和操作一起被编成一个32位的机器码,所以它不可能是32位的,是有条件的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP