ARM 嵌入式微处理器指令集(上)

2023-12-21 10:38

本文主要是介绍ARM 嵌入式微处理器指令集(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社

目录:

  • ARM 嵌入式微处理器指令集
    • ARM 处理器实现的指令集
      • ARM 指令集的特点
      • Thumb 指令集的约束
    • ARM v4T 架构指令体系
      • 条件执行和标志位
      • 数据处理指令
      • 乘法和除法
      • 分支指令
        • 子程序调用
      • 单寄存器的数据传输
      • 批量加载存储
      • 交换指令
      • 软中断指令
      • 程序状态寄存器访问指令
      • 协处理器指令
        • 协处理器数据操作指令
        • 协处理器寄存器与 ARM 处理器寄存器数据传输指令
        • 协处理器寄存器和内存的数据传输指令


ARM 嵌入式微处理器指令集

ARM 处理器实现的指令集

  • 32 位的 ARM 指令集和 16 位的 Thumb 指令集
  • ARM 处理器允许在 ARM 状态和 Thumb 状态之间进行切换和互操作,保证用户在运算性能和代码密度之间的选择的灵活性
  • 采用 16 位的 Thumb 指令集优势在于更高的代码密度和降低功耗
  • Thumb 指令集的代码一般是由编译器生成的而不是手动编写出来的

ARM 指令集的特点

  • 所有 ARM 指令都是 32 位定长的,内存中地址以 4 字节边界对齐,故 ARM 指令的有效地址最后两位总是 00
  • 加载 - 存储架构。除了专门的加载 - 存储类型的指令可以访问内存外,其余指令使用处理器内部寄存器的数据和立即数作为操作数
  • 提供一次加载和存储多个寄存器的指令:LDM 和 STM。这样,发生过程调用和中断处理时,只用一条指令即可把多个寄存器的内容保存到内存堆栈中
  • CPU 内核硬件中提供了桶形移位器,移位操作可以内嵌在其他指令中,即一条指令可在一个指令周期完成一个移位操作和一个 ALU 操作
  • 所有 ARM 指令都可以条件执行,其指令高四位是条件指示位,根据 CPSR 寄存器中的N、Z、C、V 决定该指令是否执行

Thumb

这篇关于ARM 嵌入式微处理器指令集(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/519680

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

深入探索嵌入式 Linux

摘要:本文深入探究嵌入式 Linux。首先回顾其发展历程,从早期尝试到克服诸多困难逐渐成熟。接着阐述其体系结构,涵盖硬件、内核、文件系统和应用层。开发环境方面包括交叉编译工具链、调试工具和集成开发环境。在应用领域,广泛应用于消费电子、工业控制、汽车电子和智能家居等领域。关键技术有内核裁剪与优化、设备驱动程序开发、实时性增强和电源管理等。最后展望其未来发展趋势,如与物联网融合、人工智能应用、安全性与

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

基于微信小程序与嵌入式系统的智能小车开发(详细流程)

一、项目概述 本项目旨在开发一款智能小车,结合微信小程序与嵌入式系统,提供实时图像处理与控制功能。用户可以通过微信小程序远程操控小车,并实时接收摄像头采集的图像。该项目解决了传统遥控小车在图像反馈和控制延迟方面的问题,提升了小车的智能化水平,适用于教育、科研和娱乐等多个领域。 二、系统架构 1. 系统架构设计 本项目的系统架构主要分为以下几个部分: 微信小程序:负责用户界面、控制指令的

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机