ARM day1

这篇具有很好参考价值的文章主要介绍了ARM day1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概念

ARM可以工作的七种模式 用户、系统、快中断、中断、管理、终止、未定义
ARM核的寄存器个数

37个32位长的寄存器,当前处理器的模式决定着哪组寄存器可操作,且任何模式都可以存取:

PC(program counter程序计数器)+

CPSR(current program status register当前程序状态寄存器)+

5*SPSR(saved program status register保存之前的程序状态寄存器)+

30通用寄存器

PC和LR寄存器的别名 R15(程序计数器:记录当前程序运行的位置)、R14(link register程序连接寄存器)
R13的别名 SP(栈顶指针寄存器,用于保存堆栈指针)
哪种模式下使用的寄存器最少 user(R0~R15+CPSR,没有SPSR保存之前程序状态寄存器)
Thumb指令集中,哪些寄存器处于Low group? R0-R7        R8-R15+CPSR+SPSR处于high?
CPSR的哪两位反映了处理器的状态?

    T 和 J 位 
    T = 0, j = 0,  处于 ARM 状态 (一条指令 4 字节  32 位)
    T = 1, j = 0,  处于 thumb 状态 (一条指令 2 字节  16 位)
    T = 1, j = 1,  处于 thumbEE 状态 

所有的Thumb指令采取什么对齐方式? halfword半字对齐
ARM有哪几个异常源 7种:复位异常reset、未定义指令异常undefined instruction、软中断异常swi、预取指异常prefetch abort、数据异常data abort、IRQ异常irq、FIQ异常fiq
ARM有哪几种异常模式 SVC、未定义、Abort、IRQ、FIQ
复位后,ARM处理器处于何种模式何种状态? SVC模式、ARM状态

二、概念

PC寄存器 程序计数器,比如调用函数结束后从原来的位置继续执行程序
SP堆栈指针? stack pointer
寄存器的定义
ARM是什么 ARM(Advanced RISC Machines)是一家英国公司,专门从事低功耗高性能的嵌入式处理器设计。它开发了多个处理器架构,以供各种计算设备使用。
ARM处理器架构 ARM处理器架构是一个针对低功耗和高性能优化的精简指令集(RISC)架构。它分为三个主要系列:Cortex(针对嵌入式和移动设备)、ARM(针对性能优化)和ARM Cortex(结合了Cortex和ARM的优势)。
ARM Cortex系列 ARM Cortex系列是针对高性能嵌入式应用设计的处理器系列。其中最受欢迎的是Cortex-A系列和Cortex-M系列。
    Cortex-A系列:针对高性能应用设计,适用于智能手机、平板电脑、服务器等。
    Cortex-M系列:针对低功耗和嵌入式应用设计,适用于物联网、智能家居、智能硬件等。
ARM开发板 为了方便开发人员测试和验证ARM处理器,ARM开发板已成为嵌入式开发的标准工具。常见的ARM开发板包括Beckhoff的TwinCAT、NXP的i.MXRT、ST的STM32等
ARM编程语言 ARM处理器支持多种编程语言,如C/C++、汇编语言、Python等。其中,C/C++是最常用的编程语言,因为它们能够提供高效的代码执行和内存管理。
ARM开发工具链 ARM开发工具链包括编译器、调试器、仿真器等。其中,Keil uVision和GCC是最常用的编译器,ST-Link和J-Link是最常用的调试器,QEMU和JTAG是最常用的仿真器。
ARM应用领域 ARM处理器被广泛应用于各种领域,如嵌入式系统、物联网、智能家居、智能硬件、机器人等。同时,ARM架构也被广泛应用于服务器和高性能计算领域。

三、CPSR

ARM day1,汇编,arm开发

四、七种常用工作模式

ARM day1,汇编,arm开发 文章来源地址https://www.toymoban.com/news/detail-795536.html

到了这里,关于ARM day1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Keil MDK配置ARM汇编/C语言混合开发环境

    1. 安装Keil MDK 安装方法这里不再说明,懂得都懂!🐶 2. 安装ARM开发包 在Keil MDK5之后,不再原生支持ARM7/9,需要自行安装软件包,链接在这,注意安装与自己MDK版本对应的那个包 我的版本是5.18,下载之后傻瓜式安装,因为它会自动检测你MDK所在的位置。 3. 新建工程 注意:选

    2024年02月02日
    浏览(57)
  • 【ARM64 常见汇编指令学习 12 -- ARM 汇编函数 的学习】

    上篇文章:ARM64 常见汇编指令学习 11 – ARM 汇编宏 .macro 的学习 下篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 ARM汇编中的函数定义并不像高级语言那样有特定的语法,但通常可以通过 标签(label) 和 子程序调用指令 (如BL,BLX) 来实现类似于函数的功能。 例如

    2024年02月14日
    浏览(43)
  • 【ARM系列】ARM常用汇编指令

    在调试芯片启动代码或者分析ARM core运行流程的过程中,尝尝需要对照软件代码的反汇编文件进行分析,因此有必要掌握一些常用的arm汇编指令。 指令格式:MOV{条件}{S} 目的寄存器,源操作数 指令含义:将源操作数赋值给目的寄存器。源操作数可以是寄存器,立即数或带移位

    2024年02月04日
    浏览(38)
  • ARM64 常见汇编指令学习 11 -- ARM 汇编宏 .macro 的学习

    下篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 上篇文章:ARM64 常见汇编指令学习 10 – 无符号位域提取指令 BFXIL 在 ARM 汇编中,“ .macro ” 是用来定义一个宏的指令。宏可以看作是一个可以在汇编程序中重用的代码段。当调用宏时,汇编器会将宏的内容插入到调

    2024年02月14日
    浏览(43)
  • 【ARM64 常见汇编指令学习 13 -- ARM 汇编 ORG 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 下篇文章:ARM64 常见汇编指令学习 14 – ARM 汇编 .balign,.balignw,.balign 伪指令学习 在ARM汇编中,\\\" org \\\"是一个汇编器伪指令,用于设置下一条指令的装入地址。\\\" org \\\"后面跟着的是一个表达式,这个表达式的值就是下一条

    2024年02月14日
    浏览(46)
  • 【ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr】

    上篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 下篇文章:ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或) ARMv8 在硬件层名引入了一个新的 zero 寄存器 : XZR (64-bits), WZR (32-bits)。比如要将某一变量赋值为0x0, 由于ARM不允许直接操作内存单元上的数据

    2024年02月15日
    浏览(79)
  • 嵌入式:ARM内嵌汇编及C和ARM汇编相互调用

    在C程序中嵌入汇编程序可以实现一些高级语言没有的功能,并可以提高执行效率。armcc和armcpp内嵌汇编器支持完整的ARM指令集;tcc和tcpp用于Thumb指集。但是内嵌汇编器并不支持诸如直接修改PC实现跳转的底层功能。 内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直

    2024年02月02日
    浏览(45)
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

    🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言: 你只管努力,剩下的交给时间! 在学习C语言的时候,我们会写个 Hello World 程序来入门,当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 查看原理图,确定控制LED的引脚: 如上图是

    2024年02月05日
    浏览(45)
  • [ARM 汇编]高级部分—性能优化与调试—3.4.2 ARM汇编程序调试技巧

    在ARM汇编程序开发过程中,调试是一个关键环节。适当的调试技巧可以帮助我们更快地定位问题、解决问题,从而提高开发效率。本节将讲解一些ARM汇编程序的调试技巧,并通过实例进行讲解。 使用GDB调试 GDB(GNU调试器)是一个功能强大的调试工具,它支持ARM汇编程序的调

    2024年02月10日
    浏览(48)
  • 【ARM64 常见汇编指令学习 14 -- ARM 汇编 .balign,.balignw,.balign 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 下篇文章:ARM64 常见汇编指令学习 15 – ARM 标志位的学习 .balignl 是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。. balignl 是 .balign 的变体。 .balignl 完整

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包