【ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令】

chatgpt/2023/9/24 2:11:14

文章目录

      • LDR 指令
      • LDR伪指令
      • LDR伪指令与MOV区别

上篇文章:ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)
下篇文章:ARM 常见汇编指令学习 8 - dsb sy 指令及 dsb 参数介绍

LDR指令LDR伪指令 两者虽然名字相同但是作用却不相同,区分两者的方法就是看第二个参数,如果有等号,就是LDR伪指令。

LDR 指令

ldr r0, 0x80000000

上面语句的作用是将地址0x80000000中的内容赋值给 r0寄存器,需要注意的是不能使用mov指令来做这个事情,因为mov指令只能将数据在寄存器之间移动,或者把立即数移动到寄存器中:

mov r1, #0
mov r0, r1

LDR伪指令

ldr x7, =0x18bc0100
mov x8, xzr
ldr w9, =0xffffff00
ldr w8, [x7, #0x3c]
and w8, w8, w9
str w8, [x7, #0x3c]
dsb sy
isb

如上面arm汇编代码是将地址 0x18bc010写入到 x7寄存器中,将数据0xffffff00 写入到 w9(x9 32bit形式)中。

LDR伪指令与MOV区别

mov 指令限制了立即数的长度为8位,立即数范围是0-255,而ldr伪指令没有这个限制,如果使用ldr伪指令后面的立即数没有超过8位,那么汇编将会使用mov指令去替换LDR伪指令。

mov 后面的立即数可以进行位移操作,位移的位数范围是0-30,步长为2,所以实际上可以表示的立即数范围更大。例如,

MOV R0, #1<<30

可以将R0寄存器的值设置为0x40000000

上篇文章:ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)
下篇文章:ARM 常见汇编指令学习 8 - dsb sy 指令及 dsb 参数介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5314689.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

解决启动vue前端报错:npm ERR! Missing script: “serve“

目录 一、遇到问题 二、出现报错的两个原因 三、解决办法 一、遇到问题 npm ERR! Missing script: "serve" npm ERR! npm ERR! To see a list of scripts, run: npm ERR! npm run npm ERR! A complet

腾讯云服务器CVM镜像操作系统大全_win_linux

腾讯云CVM服务器的公共镜像是由腾讯云官方提供的镜像&#xff0c;公共镜像包含基础操作系统和腾讯云提供的初始化组件&#xff0c;公共镜像分为Windows和Linux两大类操作系统&#xff0c;如TencentOS Server、Windows Server、OpenCloudOS、CentOS Stream、CentOS、Ubuntu、Deb…

大数据_Hadoop_Parquet数据格式详解

之前有面试官问到了parquet的数据格式&#xff0c;下面对这种格式做一个详细的解读。 参考链接 &#xff1a; 列存储格式Parquet浅析 - 简书 Parquet 文件结构与优势_parquet文件_KK架构的博客-CSDN博客 Parquet文件格式解析_parquet.block.size_davidfantasy的博客-CSDN博…

【LeetCode】设计数据结构 | List、Stack、Queue、DLinkedList

【LeetCode】设计数据结构|List、Stack、Queue、DLinkedList 文章目录 【LeetCode】设计数据结构|List、Stack、Queue、DLinkedList[toc]设计链表&#xff08;中等&#xff09;用栈实现队列&#xff08;简单&#xff09;用队列实现栈&#xff08;简单&#xff09;设计循环队列&…

QT ubuntu下开发视频播放 FFmpeg

ubuntu 安装FFmpeg T113VideoDemo.pro #------------------------------------------------- # # Project created by QtCreator 2023-07-28T11:45:22 # #-------------------------------------------------QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widget…

自己动手从零写桌面操作系统GrapeOS——4.1 在VirtualBox中安装CentOS

之前讲解开发环境时并没有介绍具体的安装过程&#xff0c;有网友反应CentOS的安装配置有问题&#xff0c;尤其是共享文件夹。本讲我们就来补充介绍一下在VirtualBox中安装配置CentOS的具体过程&#xff0c;彻底解决GrapeOS开发环境问题。 一、新建虚拟机 1.在VirtulBox中点击…

Python web实战 | 使用 Flask 实现 Web Socket 聊天室

概要 今天我们学习如何使用 Python 实现 Web Socket&#xff0c;并实现一个实时聊天室的功能。本文的技术栈包括 Python、Flask、Socket.IO 和 HTML/CSS/JavaScript。 什么是 Web Socket&#xff1f; Web Socket 是一种在单个 TCP 连接上进行全双工通信的协议。它是 HTML5 中的…

web前端框架Javascript之JavaScript 异步编程史

早期的 Web 应用中&#xff0c;与后台进行交互时&#xff0c;需要进行 form 表单的提交&#xff0c;然后在页面刷新后给用户反馈结果。在页面刷新过程中&#xff0c;后台会重新返回一段 HTML 代码&#xff0c;这段 HTML 中的大部分内容与之前页面基本相同&#xff0c;这势必造成…
推荐文章