汇编知识MOV,MRS,MSR,PUSH和POP指令

处理器做得最多的事情就是在处理器内部来回的进行数据传递
1)    将数据从一个寄存器传递到另一个寄存器中
2)    将数据从一个寄存器传递到特殊寄存器,例如CPSR,SPSR寄存器
3)    将立即数传递到寄存器。
数据传输常用的三个指令:MOV,MRS,MSR指令


常用的存储器访问指令有两种:LDR和STR这两个指令
 
LDR指令:
  LDR主要用于存储加载数据到寄存器RX中,LDR也可以将一个立即数加载到寄存器RX中,LDR加载立即数的时候要使用“-”而不是“#”,在嵌入式开发中,LDR最常用的就是读取CPU寄存器中的值:
例如:
LDR R0, =0X0209C000 @将寄存器地址0x0209c000加载到R0中也就是R0=0x0209c000
LDR R1, [R0] @读取地址中的数据到R1寄存器中
上述代码就是读取寄存器值保存到R1寄存器中
STR指令:
   LDR指令是从寄存器中读取数据,STR就是将数据写入到寄存器中
LDR R0, =0X0209C000 @将寄存器地址0x0209c000加载到R0中也就是R0=0x0209c000
LDR R1, = 0X20000002 @R1保存要写入到寄存器的值
STR R1, [R0] @将R1中的值写入到R0中所保存的地址中

注:LDR和STR都是按照字进行读取和写入的,也就是操作的32位数据,如果要按照字节,半字进行操作的话可以在指令“LDR”后面加上B或H,例如按字节操作的指令LDRB,STRB,半字操作的指令LDRH,STRH。

PUSH和POP指令
    
     PUSH :将寄存器列表存入栈中
     POP:  从栈中恢复寄存器列表
将R0~R3,R12进行压栈以后的堆栈示意图,此时SP指向0x7fffffec。

POP{R0~R3,R12} @在恢复R0~R3,R12
出栈就是从栈顶,也就是SP当前执行的位置开始,地址依次减小来提取堆栈中的数据
到要恢复的寄存器列表中
PUSH和POP的另一种写法是STMFD SP! 和 LDMFD SP!
 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清华计算几何-线段求交与BO算法

单轴线段求交 给定单边轴下, N定线段,检查出相交的线段. 解法一: 暴力求解 遍历所有线段对,进行相交判断, 算法复杂度为O(n2) 解法二: LR扫描 把每条线段的头尾认定为L和R。对所有点进行排序,如果每两个点满足LL或者RR,则对应…

嵌入式UI开发-lvgl+wsl2+vscode系列:11、SSD202移植运行评估demo程序

一、前言 接下来我们根据开发板的LVGL指南移植lvgl的demo程序到开发板上,以及将一个评估的项目移植到开发板上,你将会发现移植lvgl到ssd2xx的板子上似乎很简单,但通过评估程序你将更加方便了解lvgl是否可以满足你的开发需求,除了…

使用了LSTM的数据预测

记录一下,这个是在national university of singapore,黄教授给我们布置的任务,做了一个北京的已知十年的打印量,预测100天的打印机大作业,我们使用了lstm模型,就是两层神经网络,同时dropout的加入为了防止过…

k8s跨节点后pod无法访问

场景 k8s在node1节点部署nginx后, 除node1外,主节点以及node2节点都无法正常访问nginx 并且主节点以及node2节点都无法ping通node1节点上的pod 网络插件为calico 并且也没有相关路由信息 解决方案 启动tunl0接口,因为calico需要使用tunl0网…

【解析几何笔记】8.向量的投影与内积

8. 向量的投影与内积 复习前面的知识:,若BCE三点共线,则 A E ⃗ ( 1 − s ) A B ⃗ s A C ⃗ , ( B , C , E ) μ ⇒ s μ 1 μ , 1 − s 1 1 μ \vec{AE}(1-s)\vec{AB}s\vec{AC},(B,C,E)\mu\Rightarrow s\frac{\mu}{1\mu},1-s\frac…

【学习笔记】时间序列模型(ARIMA)

文章目录 前言一、时间序列时间序列数据 二、ARIMA 模型大纲模型前提平稳性检验 差分整合移动平均自回归模型 ARIMA(p,q,d)自回归模型 (AR( p ))移动平均模型 (MA( q ))自回归移动平均模型(ARMA(p,q))差分自回归移动平均模型 ARIMA(p,d,q) 确定 p,q结果分析和模型检…

EVE-NG安装部署使用

EVE-NG安装部署使用 一、EVE的虚拟化安装1、下载EVE-NG(社区版)2、导入虚拟机-配置-登录二、EVE中设备的连接sercureCRT连接wireshark连接一、EVE的虚拟化安装 1、下载EVE-NG(社区版) 官网下载地址(科学上网): https://www.eve-ng.net/index.php/download/ 中文网下载…

运用Archimate为 智慧文旅搭建 数字化架构体系【系统架构】

ArchiMate是一种用于企业架构建模的开放、独立且详细的语言,它提供了一套丰富的概念和关系来描述、分析和可视化企业架构的不同领域。以下是ArchiMate建模的一些关键功能: 多视图建模:ArchiMate定义了23个示例视图,分为四类&#…

VMware-Ubuntu共享文件找不到

正常的流程我们实现设置共享目录 然后安装vmware-tool工具 我们先看一下vmware-tool的获取方式,系统安装好了以后,关闭系统将虚拟机设置改成图中配置,然后重启 鼠标右键会看到重新安装vmware-tool不再是灰色,点击重新安装 以1…

OpenCV几何图像变换(5)旋转和缩放计算函数getRotationMatrix2D()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算二维旋转的仿射矩阵。 该函数计算以下矩阵: [ α β ( 1 − α ) ⋅ center.x − β ⋅ center.y − β α β ⋅ center.x ( …

【TB作品】MSP430F149单片机,数字时钟万年历程序,滚动显示特效

一、 万年历 任务要求: 制作一个万年历,具有显示时间、日期、温度、湿度、闹钟功能。 1、OLED显示屏上显示日期和时钟(显示到秒,时间可走动);(20分) 2、通过开发板上的温度传感器采集…

8月25日笔记

IOX的使用 iox是一款功能强大的端口转发&内网代理工具,该工具的功能类似于lcx和ew,但是iox的功能和性能都更加强大。 实际上,lcx和ew都是非常优秀的工具,但还是有地方可以提升的。在一开始使用这些工具的一段时间里&#xff…

前端常见**MS题 [3]

css部分 1、简单说明一下盒模型 CSS盒模型定义了盒的每个部分包含: margin, border, padding, content 。根据盒子大小的计算方式不同盒模型分成了两种,标准盒模型和怪异盒模型。 标准模型,给盒设置 width 和 height,实际设置的是…

C语言 | Leetcode C语言题解之第373题查找和最小的K对数字

题目&#xff1a; 题解&#xff1a; #define MIN(a, b) ((a) > (b) ? (b) : (a))int** kSmallestPairs(int* nums1, int nums1Size, int* nums2, int nums2Size, int k, int* returnSize, int** returnColumnSizes) {if (nums1Size 0 || nums2Size 0 || k < 0) {*ret…

Gerapy 分布式爬虫管理框架

什么是 Gerapy Gerapy 是一个基于 Scrapy 的分布式爬虫管理框架。它提供了一个图形化的用户界面&#xff0c;使得用户可以更方便地进行 Scrapy 项目的管理和调度。Gerapy 支持项目的创建、编辑、部署以及调度任务的管理。 功能作用 项目管理&#xff1a;Gerapy 允许用户通过 W…

数据结构系列-归并排序

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 归并排序 递归版本 首先&#xff0c;我们来看一下归并的示意图&#xff1a; 这是归并排序当中分解的过程。 然后便是两个两个进行排序&#xff0c;组合的过程。 归并完美的诠释…

C++类和对象(2)——拷贝构造函数

拷贝构造函数的语法 拷贝构造函数是构造函数的重载&#xff0c; 用于这种情况&#xff1a;用已经构造好的对象去给另一个对象初始化。 int main() {Date d1(2024, 8, 1);Date d2(d1);//用d1初始化d2return 0; } 我们以Date类为例子讲解一下。 class Date { public://全缺省…

【计算机网络】计算机网络的概念

什么是计算机网络&#xff1f; 计算机网络&#xff08;Computer networking&#xff09;是一个将众多分散的、自治的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 计算机网络、互连网、互联网的区别 计算机…

OpenCV几何图像变换(4)亚像素图像截取函数getRectSubPix()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 从图像中以亚像素精度检索像素矩形。 getRectSubPix 函数从 src 中提取像素&#xff1a; p a t c h ( x , y ) s r c ( x center.x − ( dst.…

指针之旅(1)—— 指针基础概念知识(详细解析)

前言&#xff1a;该篇我将详细讲解指针当中的一些基本概念&#xff0c;有内存和地址的部分硬件知识&#xff0c;有专门服务于指针的操作符&和*&#xff0c;有指针大小固定不变的原因&#xff0c;还有专属于指针的运算规则。 目录 1. 内存和地址 1.1 内存地址的概念&…