| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ARM 立即数范围以及合法立即数 -> 正文阅读 |
|
[嵌入式]ARM 立即数范围以及合法立即数 |
ARM 立即数范围以及立即数的编码规则一,问题描述笔者在写汇编代码时曾遇到过立即数不合法的问题:
比如笔者代码中含有如下命令:
使用RVDS(RealView Development Suite)编译器进行编译,则会报出如下错误: 通过阅读ARM相关技术手册,笔者有如下发现:
二,立即数范围在ARM中,无论是Arch64还是Arch32,一条汇编指令的编码长度固定为32bits,在Thumb中为16bits,这就意味着不能将带有操作码(opcode)的汇编指令编译成任意的32bits的值。 在文档编号为 从表格中可以看出,在ARM指令集中,一条汇编指令编码成32bits后,将不同的位数划分成不同的功能区间,比如条件码(condition codes)和操作码,还有比特位要留给指令本身和寄存器使用,通常情况下只有12-bits的长度可以用来表示立即数(immediate)。 12bits可以表示的无符号数范围为: 比如 三,立即数编码本章拿数据处理指令的编码举例,如下图所示为DI0406C_arm_architecture_reference_manual参考手册中关于数据处理指令编码的表格: 更进一步,本章详细地用 ARM cortex-A系列的 其中的条件码 本章拿立即数
按照上述的编码规则将会被编码成: 换算成二进制: 即 更多的编码示例可参考下图,图片来自ARM指令集中立即数寻址的范围 在ARMv7中管这种循环右移得到的立即数叫做 其中 综上所述,我们可以得出以下结论:
关于立即数合不合法,可先参考这篇文章 ARM 立即寻址之立即数的形成 —— 如何判断有效立即数。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:46:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |