ARM MOV指令对立即数的要求
MOV R1,#9
以上指令表示把9传送到寄存器R1中。
需要注意的是,这里的立即数是有要求的,不是说任何一个立即数都可以。
要求是:立即数可以由一个8位的常数循环右移偶数位得到。其中循环右移的位数由一个4位二进制的两倍表示。
如果立即数记作immediate
,8位常数记作immed_8
,4位的循环右移值记作rotate_imm
,则
immediate
=immed_8
循环右移(2*rotate_imm
)
这样并不是每一个32位的常数都是合法的立即数,只有能通过上面的构造方法得到的才是合法的立即数。
比如,0x101,0x102,0xFFF;
另外,一个合法的立即数,可能有多种编码方法。如0x3F0,它可以采用下面两种编码方法:
immed_8
=0x3F,rotate_imm
=0xE
(0x3F循环右移28位,即0x3F左移4位得到0x3F0)
或者
immed_8
=0xFC,rotate_imm
=0xF
(0xFC循环右移30位,即0xFC左移2位得到0x3F0)
对于不合法的立即数,比如要把0xFFF传送到R1中,虽然不能用MOV指令,但是可以用LDR伪指令,用法是
LDR R1,=0xFFF
ARM MOV指令对立即数的要求相关推荐
- ARM指令之MOV指令汇编与机器码的对应关系
指令条件码 条件码就是一种简单的测试ALU状态标志位的方法. mov指令机器码 比如: mov r1,#3 立即数:3 第一个操作数:寄存器1 S:0 (注意:mov指令后面加主机符为s时S位为1) ...
- LDR伪指令和LDR指令及MOV指令的区别
1.前言 ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令. 2.LDR指令 就是将地址中的值存放到寄存器中 比如想把数据从内存中某处读取到寄存器中 ...
- MOV指令是数据传送指令
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的).其特点是不破坏源地址单元的内容. 例如: MOV AX,2 ...
- 汇编语言学习——mov指令(转载)
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的).其特点是不破坏源地址单元的内容. 例如: MOV AX,200 ...
- MOV指令、LDR指令、LDR伪指令之间的区别(ARM立即数的存取)
1.MOV指令 MOV指令可以把立即数或者寄存器内容(注意:这里绝对不可以是内存!!)传递给一个寄存器. 立即数相当于高级语言中的常量(常数), 立即数就是数字嘛,表示数值的数字, 存储器用的是地址, ...
- 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)
首先说明一下 ARM是RISC("reduced instruction set computer",即"精简指令集计算机")结构 x86是CISC(" ...
- ARM MOV和 LDR指令关系
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令. 比如想把数据从内存中某处读取到寄存器中,只能使用ldr 比如: ldr r0, 0x123456 ...
- ARM中的MOV指令
ARM中的MOV指令格式是这样的 op2是占了12位,其中bit11-bit8是移位数(rotate),bit7-0是一个8位的立即数(imm),MOV Rn, op2,执行之后,Rn=op2 > ...
- ARM汇编指令立即数规范和判断
转载 :https://blog.csdn.net/yunfenglw/article/details/41621103 在ARM汇编的数据处理指令中经常会使用到常数,而ARM汇编中规定使用的常数必须 ...
最新文章
- Oracle 11g必须开启的服务及服务详细介绍
- sqrtm--矩阵的平方根
- 如何在服务器端完善游戏的用户体验
- mysql 5.6 初始化_MySQL 5.6 关于登陆的初始化设置
- crc32库 qt_Qt 打包32位库(包括WebEngineView)
- 解决 同时安装 python3,python2环境时,用pip安装 python3 包
- Python——装饰器的学习笔记
- 微信小程序获取用户的头像和昵称
- dump文件_windows程序崩溃时生成dump文件方法
- 【bzoj5001】搞事情 暴力
- 例2.4 Day of Week - 九度教程第7题(日期类问题)
- Android入门基础教程(小白速成1)
- 市场的各大TWS蓝牙耳机芯片方案汇总
- 基于单片机的水库控制系统设计
- win10用计算机分区,win10 GPT磁盘各分区的功能分别是什么?
- 你知道战国四大名将都有谁吗
- 通过ICommand和ITool操作地图
- python对数正态分布函数_scipy,对数正态分布-参数
- 1256 字符串复制
- Vertu模仿秀遭热捧 折射黑手机泛滥主因
热门文章
- nyoj1047欧几里得
- 启动celery后执行任务报错:django.core.exceptions.ImproperlyConfigured
- 剑指offer-99.调整数组顺序使奇数位于偶数前面
- MySQL的常见存储引擎介绍与参数设置调优
- android设置系统横屏方案
- 学习笔记:Windows 下Keras安装和配置指南
- CentOS7安装cuda及GPU驱动--基于runfile文件
- Qt中ui文件的使用
- IDE (Integrated Development Environment) 集成开发环境
- Opencv 配置VS2012