我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 779|回复: 1

[技术文章] 判断arm立即数是否合法的小程序

[复制链接]

该用户从未签到

21

主题

9

回帖

0

积分

一级逆天

积分
0

社区居民终身成就奖

QQ
发表于 2016-5-18 21:01:44 | 显示全部楼层 |阅读模式
今天老师布置了课后习题,有一题是判断立即数的,大家都知道,arm里的立即数并非都是合法的。

      描述:如立即数记作 <immediate> ,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环左移偶数位得到,则有效立即数immediate可表示成:
<immediate>   =   immed_8循环右移(   2   *   rotate_imm   )

例:有效立即数   0x0000F200,0x00110000,   0x00012800
      无效立即数   0x1010,   0x00102,   0xFF1000
显然,对于8位立即数都是有效的。

      其实从定义上判断一个数是不是立即数也很简单的:

1.看所有的bit位为1的是否在一个字节中
2.若1条件满足,则看是否可以经过偶数位左移得到

满足这两个条件的就是合法的立即数了,不过还是写了一个小程序来判断,看来我还是这么的懒,嘻嘻。
回复

使用道具 举报

该用户从未签到

0

主题

5178

回帖

2062

积分

二级逆天

积分
2062

社区居民忠实会员社区劳模特殊贡献奖最爱沙发终身成就奖优秀斑竹奖原创先锋奖

QQ
发表于 2016-5-19 09:25:17 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表