ARM微处理器中的常量
来源:互联网 发布:windows vim 全屏 编辑:程序博客网 时间:2024/04/30 11:48
ARM微处理器中的常量
学习ARM微处理器中的常量时,一直很懵懂,网上查了一下,终于弄明白,记录下来先。
书上的原话是:
“常量是一个8位的常数经循环右移偶数位(0、2、4、8、…、26、28、30)得到。ARM指令时固定的32位指令编码,不可能直接用32位表示立即数,采用上述间接方式表示的立即数在指令编码中需要12位(其中8位表示常数,4位表示循环右移)。这样一来,不是每一个32位常数都是合法的立即数,只有通过上面的构造方法得到的才是合法的立即数。
合法常量:0xFF、0×104、0xFF000、0xFF000000、0xF000000F。
非法常量:0×101、0×102、0xFF1、0xFF04、0xFF003、0xFFFFFFFF、0xF000001F。”
一开始我纳闷:“一个8位的常数”是什么东西?结论是:一个8位的任何数,即0×00(0000 0000)~0xFF(1111 1111)都是符合条件的8位常数。
那么“循环右移偶数位”是什么概念?其实是在上述的8位常数前填加0,补充到32位之后,再循环右移偶数位。
举个例子:
比如0x0F(0000 1111)扩充之后为0x0000000F(0000 0000 0000 0000 0000 0000 0000 1111),循环右移(比如2位)之后为0xC0000003(1100 0000 0000 0000 0000 0000 0000 0011)。故0xC0000003也是一个ARM的合法立即数。
- ARM微处理器中的常量
- ARM中的合法常量和非法常量
- ARM微处理器概述
- ARM微处理器概述
- ARM微处理器的指令系统
- ARM微处理器概述
- ARM微处理器系列
- ARM微处理器的指令系统
- ARM 微处理器的分类
- ARM微处理器的指令系统
- ARM微处理器系列
- ARM微处理器运行模式
- ARM微处理器的指令系统
- ARM微处理器的指令系统
- ARM微处理器的体系结构
- ARM 微处理器的数据类型
- ARM Cortex-M4F微处理器
- ARM微处理器系列简介
- 闭包,小考题
- SQLite3的提交事务代码
- 数字转人民币大写
- RMAN 系列(九) ---- 调整RMAN备份与恢复操作的性能
- How to speed up and smooth over any load times on iPhone (preloading, animated loading screens etc)
- ARM微处理器中的常量
- getTimeInMillis() vs. DateTime.Now.Ticks——Java 和 .NET 获得毫秒级长整型数值的差异和解决
- Linux IIC框架(上)
- 牛人们的博客
- wxPython程序的快捷键设置
- HDOJ 2089 不要62
- error C2664:
- 15个Excel小技巧
- vim命令入门【图】