嵌入式系统设计与应用---ARM指令集(学习笔记)

news2024/11/27 11:41:47

目录

本文图片截取自书本和老师的ppt

概述

指令格式

指令的条件码

ARM的寻址方式

立即寻址

寄存器寻址

寄存器间接寻址

寄存器移位寻址

变址寻址

多寄存器寻址

相对寻址

堆栈寻址

块复制寻址

ARM指令集简介

跳转指令

1.B指令

2.BL指令

数据处理指令

1.数据传送指令

2.算术逻辑运算指令

3.比较指令

程序状态寄存器处理指令

1.MRS(读状态寄存器指令)

2.MSR(写状态寄存器指令)

加载/存储指令

1.LDR指令

2.STR指令

3.LDM和STM指令


本文图片截取自书本和老师的ppt

概述

ARM指令集是32位指令集,所有指令长度都是32位,以4字节边界对齐方式存储;该指令集效率高,但代码密度较低

Thumb指令集是16位指令集,2字节边界对齐,是ARM指令集的子集;

指令格式

< opcode > {< cond >} { S } < Rd >,< Rn >,< shift_operand >

指令中"<>"内的项是必需的,"{}"内的项是可选的

指令的条件码

ARM的寻址方式

立即寻址

寄存器寻址

寄存器间接寻址

寄存器移位寻址

变址寻址

多寄存器寻址

相对寻址

​​​​​​​

堆栈寻址

块复制寻址

ARM指令集简介

跳转指令

跳转指令用于实现程序流程的跳转。在ARM程序中有两种方式可以实现程序流程的跳转:

  • 直接向程序计数器PC中写入跳转地址,可以实现4G地址空间内的任意跳转
  • 使用专门的跳转指令:ARM指令集中的跳转指令可以完成从当前指令向前或向后的
    32MB地址空间的跳转。

1.B指令

跳转指令B是最简单的跳转指令,跳转到给定的目标地址,从那里继续执行。

2.BL指令

用于子程序调用,在跳转之前,将下一条指令的地址复制到链接寄存器R14(LR)中,然后跳转到指定地址执行。

数据处理指令

数据传输指令主要完成寄存器中数据的各种运算操作。

数据处理指令的使用原则:

  • 所有操作数都是32位,可以是寄存器或立即数。
  • 如果数据操作有结果,结果也为32位,放在目的寄存器中。
  • 指令使用,两操作数’或“三操作数” 方式,即每一个操作数寄存器和目的寄存器分别指定。
  • 数据处理指令只能对寄存器的内容进行操作。指令后都可以选择S后缀来影响标志位。比较指令不需要后缀S,这些指令执行后都会影响标志位。

1.数据传送指令

2.算术逻辑运算指令

3.比较指令

程序状态寄存器处理指令

MRS指令和MSR指令用于在状态寄存器和通用寄存器间传输数据。状态寄存器的值要通过 “读取一修改一写回”三个步骤操作来实现,可先用MRS指令将状态寄存器的值复制到通用寄存器中,修改后再通过MSR指令把通用寄存器的值写回状态寄存器。

1.MRS(读状态寄存器指令)

通过读CPSR可以了解当前处理器的工作状态。读SPSR奇存器可以了解
到进入异常前的处理器状态。

2.MSR(写状态寄存器指令)

与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/F1Q中断等。

加载/存储指令

加载/存储指令用于在寄存器和存储器之间传输数据,Load指令用于将存储器中的数据传输到寄存器中,Store指令用于将寄存器中的数据保存到存储器中。

1.LDR指令

2.STR指令

3.LDM和STM指令

主要用途:现场保护、数据复制、常数传递等

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PostgreSQL简介及安装步骤

PostgreSQL简介 PostgreSQL是一款开源的关系型数据库管理系统&#xff0c;具有强大的扩展性、高度的可定制性和可靠的稳定性&#xff0c;因此在企业级应用和开发领域中得到了广泛的应用。本文将介绍PostgreSQL的基本概念以及在各种操作系统上的安装步骤。 安装步骤 1. Window…

94 腐烂的橘子

腐烂的橘子 题解1 多源广度优先搜索另一种写法 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 …

儿童围栏上架亚马逊TEMU平台美国站做什么认证?儿童围栏认证标准ASTM F1004

ASTM F1004-21对 "伸缩门 "的定义是&#xff1a;"用于竖立在门口等开口处的障碍物&#xff0c;以防止幼儿通过&#xff0c;但可由能够操作锁定装置的老年人拆除"&#xff08;第3.1.7节&#xff09;。 ASTM F1004-21对 "可扩展围栏 "的定义是&am…

top和jstack分析堆栈问题

1.top 在服务器上&#xff0c;我们可以通过top命令查看各个进程的cpu使用情况&#xff0c;它默认是按cpu使用率由高到低排序的 由上图中&#xff0c;我们可以找出pid为21340的java进程&#xff0c;它占用了最高的cpu资源 2. top -Hp pid 通过top -Hp 21340可以查看该进程下&…

51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

51单片机的篮球计分器液晶LCD1602显示 &#x1f4d1;1.主要功能&#xff1a;&#x1f4d1;讲解视频&#xff1a;&#x1f4d1;2.仿真&#x1f4d1;3. 程序代码&#x1f4d1;4. 原理图&#x1f4d1;5. PCB图&#x1f4d1;6. 设计报告&#x1f4d1;7. 设计资料内容清单&&…

通信原理板块——时域均衡

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、均衡器 为了减小码间串扰的影响…

十种排序算法(2) - 代码和原理

本文建立在上一篇文章的基础上&#xff1a;《十种排序算法(1) - 准备工具》 注&#xff1a;本文以升序为例子进行实现和解释 1.选择排序 选择排序是最简单几种排序算法之一 (1) 原理 不断使用查找并选择最小的元素放到数组的首端 (2) 复杂度分析 最好&#xff1a;O(n^2…

Flask(Jinja2) 服务端模板注入漏洞(SSTI)

Flask&#xff08;Jinja2&#xff09; 服务端模板注入漏洞(SSTI) 参考 https://www.freebuf.com/articles/web/260504.html 验证漏洞存在 ?name{{7*7}} 回显49说明漏洞存在 vulhub给出的payload: {% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__…

多测师肖sir_高级金牌讲师_jenkins搭建

jenkins操作手册 一、jenkins介绍 1、持续集成&#xff08;CI&#xff09; Continuous integration 持续集成 团队开发成员每天都有集成他们的工作&#xff0c;通过每个成员每天至少集成一次&#xff0c;也就意味着一天有可 能多次集成。在工作中我们引入持续集成&#xff0c;通…

ESP-IDF-V5.1.1使用websocket

IDF Component Registry (espressif.com) 在windows系统中&#xff0c;在项目目录下使用命令 idf.py add-dependency "espressif/esp_websocket_client^1.1.0"

OneNote Win10自带的宝藏笔记工具

大家在上学期间&#xff0c;通常要做大量的笔记&#xff0c;为后期巩固和复习。中学小学期间&#xff0c;大家往往是通过手写笔记来记录所学知识&#xff0c;然而上了大学&#xff0c;更加自由的学习条件下&#xff0c;大家逐渐开始用电子产品来做笔记。无论是平板还是电脑&…

【解刊】1区TOP,国人友好,仅1个月左右录用,2天见刊!

计算机类 • 好刊解读 今天小编带来Elsevier旗下计算机领域好刊的解读&#xff0c;如有相关领域作者有意向投稿&#xff0c;可作为重点关注&#xff01;后文有同领域快刊发表案例&#xff0c;供您投稿参考~ 01 期刊简介 Knowledge-Based Systems ☑️出版社&#xff1a;Els…

Visual Studio 2022 + OpenCV 4.5.2 安装与配置教程

目录 OpenCV的下载与配置Visual Studio 2022的配置新建工程新建文件新建项目属性表环境配置测试先写一个输出将OpenCV的动态链接库添加到项目的 x64 | Debug下测试配置效果 Other OpenCV的下载与配置 参考这个OpenCV的下载与环境变量的配置&#xff1a; Windows10CLionOpenCV4…

「掌握创意,释放想象」——Photoshop 2023,你的无限可能!

Adobe Photoshop 2023(PS2023) 来了,全世界数以百万计的设计师、摄影师和艺术家使用 Photoshop 将不可能变为可能。从海报到包装&#xff0c;从基本的横幅到漂亮的网站&#xff0c;从令人难忘的徽标到引人注目的图标&#xff0c;Photoshop 2023让创意世界不断前进。借助直观的工…

Amazon EC2 安全可调用的云虚拟主机服务器

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Amazon EC2 打造全新的科技链 Amazon Elastic Compute Cloud&#xff08;Amazon EC2&#xff09;提供最广泛、最深入的计算平台&#xff0c;拥有超过 500 个实例&…

开放式耳机能保护听力吗?开放式耳机有哪些优缺点?

先说答案&#xff0c;开放式耳机是可以保护听力的&#xff01; 想要了解开放式耳机是否能保护听力&#xff0c;就要先知道什么是开放式耳机&#xff0c;开放式耳机是一种无需入耳&#xff0c;并且使用时不会堵塞耳道&#xff0c;也不会隔绝外界声音的蓝牙耳机。 一、开放式耳…

Gitlab服务器配置LDAP指导

ssh登录gitlab服务器&#xff1a;192.168.1.203修改配置文件 sudo su vim /etc/gitlab/gitlab.rb找到ldap_enabled和ldap_servers关键字并修改参数 保存配置文件并重新载入配置 gitlab-ctl reconfigure检查ldap相关配置是否成功&#xff08;列出前100个用户&#xff0c;若没…

JDBC SQL Server Source Connector: 一览与实践

在快速发展的数据驱动业务环境中&#xff0c;确保数据在各个系统间高效、准确地同步至关重要。为了进一步的数据处理和分析&#xff0c;经常需要将这些数据同步到其他数据处理系统。Apache SeaTunnel 提供了一个强大而灵活的数据集成框架&#xff0c;使得从 SQL Server 到其他系…

学不会Handler?那是因为你还没有看过这篇文章

对Android开发者来suo&#xff0c;Handler机制无疑是最重要的知识之一&#xff0c;大家肯定也已经看过诸多有关Handler的教学文章了&#xff0c;为什么你会看到这篇文章&#xff1f;显然是你还没学会&#xff0c;或者忘记了&#xff0c;或者想深究一下。好消息是&#xff0c;这…

相对而言,嵌入式开发和纯软件开发哪个更有优势?

相对而言&#xff0c;嵌入式开发和纯软件开发哪个更有优势&#xff1f; 你关心什么方面的优势&#xff1f; 1. 钱途&#xff1f; 纯软件胜&#xff0c;纯软件天花板高很多。嵌入式开发只能说还行。不过天花板这东西是对牛人(至少前30%的人)而言的&#xff0c;混饭吃的话差别就…