ARM将常数加载到寄存器方法之LDR伪指令

一、是什么?

LDR Rd,=const伪指令可在单个指令中构造任何32位数字常数,使用伪指令可以生成超过MOV和MVN指令
允许范围的常数.
实现原理:
(1)如果可以用MOV或MVN指令构造该常数,则汇编程序会生成适当的指令
(2)如果不能用MOV或MVN指令构造该常数,则汇编程序会执行下列操作
将该值放入文字池(在代码中嵌入一部分内存,用于从文字池中读取该常数)
LDR rn,pc,#offset to literal pool

二、使用步骤

1.LDR加载常数进寄存器例子

代码如下(示例):

c 复制代码
.global _start
_start:
	mov r0,#0x18
	LDR R3,=0x55555555


相关推荐
qq_5896660515 小时前
C语言、C++与C#的区别详解
c语言·c++·c#
喜欢吃燃面18 小时前
Linux网络编程深度解析:从Socket API到自定义协议设计
linux·网络·arm开发
昌原的儿子LEO19 小时前
Linux进程知识点总结
linux·服务器·c语言·数据库
rcms1527026921820 小时前
DS200ADCIH1ADB 输入 / 输出板
arm开发
多弗朗皮卡丘1 天前
C语言梦开始的地方16:结构体
c语言·开发语言·windows
又见情义1 天前
RK3568 Android 13 移植 EC20-CE 4G 模块全记录
android·arm开发·驱动开发
2401_862880821 天前
Linux应用层开发 --- 多任务
linux·服务器·c语言
心仪久了会沦陷1 天前
数据结构入门系列——顺序表详解:概念、分类与动态实现
c语言·数据结构·经验分享·笔记·开源
witton1 天前
xmake中将proto文件生成C/C++文件然后再编译链接进项目
c语言·c++·mingw·protobuf·xmake·protobuf-c·protoc-gen-c
dear_bi_MyOnly1 天前
C语言控制语句与循环逻辑精讲
c语言·开发语言·学习·分类