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


相关推荐
棐木7 小时前
【C语言】动态内存管理
c语言·free·malloc·realloc·calloc·动态内存
屁股割了还要学11 小时前
【C语言进阶】内存函数
c语言·开发语言·学习·算法·青少年编程
耳总是一颗苹果11 小时前
C语言---自定义类型(上)(结构体类型)
c语言·开发语言
witton14 小时前
x86版Ubuntu的容器中运行ARM版Ubuntu
linux·arm开发·ubuntu·docker·容器·arm·qemu
basketball61616 小时前
Linux C 进程基本操作
linux·运维·服务器·c语言·后端
草莓熊Lotso16 小时前
【LeetCode刷题指南】--数组串联,合并两个有序数组,删除有序数组中的重复项
c语言·数据结构·其他·刷题
平哥努力学习ing16 小时前
C语言内存函数
c语言·开发语言·算法
wenke00a17 小时前
C函数实现strcopy strcat strcmp strstr
c语言·前端
慕洋男孩18 小时前
错误经验一:计算两个整数a和b的和
c语言·经验分享·错误经验
小xiao白19 小时前
不能使用枚举作为 宏定义的定义
c语言·ide·单片机·物联网