首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM数据处理指令中的立即数问题

ARM数据处理指令中的立即数问题


CPU的手册上,数据处理指令格式如上:

立即数是Operand2部分,占据了机器码的低12位。其中最低8位称为immed_8,高4位称为rotate_imm。

立即数的数值计算方法:=immed_8 循环右移 (2 * rotate_imm)。
就是说,一个立即数0x56000000,循环左移,如果可以得到一个用8位位图表示的数,则该立即数0x56000000是一个合法的立即数;否则,该立即数不合法。
高四位:2^4=16,要想表示移位范围为0-31,则每次最少移动2位,即,右移的最小单位为2.这样,2*16就可以表示最多32位的移动。
继承事业,薪火相传
返回列表