1.arm有31个32位寄存器,其他的用于加速执行。

2. r0~r13是完全通用的, 而r14=LR, r15=PC.
   1) LR在BL指令后,做为BL指令的下一条指令地址, 即函数返回地址(这和Powerpc是完全相同的),其他时候LR(R14)可作为通用寄存器使用。
          2) PC(R15), 程序计数器,指向下一条指令地址, 由于arm指令都是4字节的,所以PC末尾两位总为0。(这和Powerpc不同, Powerpc是没有显式的PC的)。
   3) 软件一般使用r13作为栈寄存器, 但这不是必须的。(和Powerpc一致,栈寄存器可以自选, 而x86就不同,栈寄存器永远是SP)

3. arm有五种异常,每种对应一个特权处理模式。
    快速中断(fast interrupt), 普通中断(normal interrupt), 内存故障(memory aborts), 非法指令(attempted to execution of undefined instruction). 每种异常, r13,r14都有一个影像寄存器, 在快速中断时,r8~r12也都各有一个影子寄存器。 中断时, r14保存返回地址, 而r13一般用来保存私有的栈指针。

    arm还有一个模式, 系统模式(system  mode), 用来访问特权资源, 一般内核代码运行在此级别。

4. CPSR包含除通用寄存器外,所有的处理器状态。 每个异常模式还包含一个SPSR,包含异常发生前的CPSR值。

5. arm指令集分成六类:
  1) 分支指令(Branch instructions)
       2) 数据处理指令 (Data-processing instructions)
       3) 状态寄存器传送指令 (Status register tansfer instructions)
       4) 加载和存储指令 (Load and store instructions)
       5)协处理器指令 (Coprocessor instructions)

转载于:https://blog.51cto.com/techfans/142504

Arm architecture 第一章相关推荐

  1. 第一章 Arm 架构科普解读(2023新)

    第一章 启发式 Arm 科普解读 第二章 CPU微架构 第三章 系统微架构 第四章 总线微架构 第五章 监控微架构 第六章 安全微架构 第七章 虚拟化微架构 第八章 Armv9-A 架构 第九章 Ar ...

  2. [ARM嵌入式系统开发]第一章之Dhrystone

    在书的第一章开头部分,作者提到了"最成功的ARM内核之一ARM7TDMI,具有最高120 Dhrystone MIPS的性能.高的代码密度和低功耗等特性,使它成为移动嵌入式设备的最佳选择&q ...

  3. ARM体系结构与编程阅读笔记系列(第一章)

    系列文章目录 第一章 ARM概述机器基本编程模型 ARM概述及其基本编程模型 系列文章目录 前言 ARM体系结构的版本及命名方法 ARM体系结构的版本 ARM体系结构的变种 ARM/Thumb体系版本 ...

  4. 【正点原子FPGA连载】第一章 ZYNQ简介 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  5. 【正点原子FPGA连载】 第一章 MPSoC简介 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  6. Cyclone V SoC FPGA学习之路第一章:综述

    Cyclone V SoC FPGA学习之路第一章:总体了解 关键词: adaptive logic modules – ALM 自适应逻辑模块 logic array block --LAB 逻辑阵 ...

  7. AArch64教程第一章

    AArch64教程第一章 AArch64是一个新的64位模式,它是ARMv8架构下的一部分,它于2011年随着ARM发布.它被逐步部署于智能手机和服务器.所以我认为现在学习一点关于此架构的知识是比较好 ...

  8. AAPCS(Procedure Call Standard for the ARM Architecture)笔记

    这篇文章是对AAPCS文档的简单翻译, 因之前要讲课又没在网上找到中文版, 就决定尝试自己翻译一下, 个人理解不保证翻译正确性. 所有拿捏不准的地方全部保留英文(一来方便读者对上下文理解, 二来防止前 ...

  9. [C in ASM(ARM64)]第一章 一些实例

    C程序设计语言的汇编解释(ARM64版) 第一章 一些实例 不多废话,直接从实例开始吧! 1.1 开始 讲语言的第一个例子自然是在控制台打印: hello, world 想必大家都可以很轻易的用C写出 ...

最新文章

  1. 【实战经验分享】一劳永逸的解决网线随意热插拔问题
  2. Windbg内核调试之一: Vista Boot Config设置
  3. Java学习小程序(8)求数组元素的最大值并放在最后一位
  4. Github博客地址
  5. 【渝粤教育】国家开放大学2018年春季 0300-21T图形创意 参考试题
  6. 运算符 优先级 结合性
  7. 想让马云成为你的老大?揭秘阿里面试情景
  8. 20165318 结对编程项目-四则运算 阶段总结
  9. Mac中使用LaTeX的中文字体出现Package fontspec Error: The font “宋体“ cannot be found.解决方案
  10. 看我发现了什么好东西? Java Optional,绝对值得一学 | 原力计划
  11. j循环赋予li id_《Science》子刊:超强Li-S电池诞生!硫负载量高达15mg·cm-2
  12. 《海量数据库解决方案》之位图索引的结构和特征
  13. USB VIDPID 表
  14. HTML CSS 网页设计作业「动漫小站」
  15. 在Centos7中安装英伟达显卡驱动
  16. 如何启用计算机的远程服务,如何启用远程Windows命令行管理程序
  17. 【短期】未来学习目标
  18. mac 升级php 到7,macOS High Sierra 10.13升级PHP到7.3并创建Laravel 7项目
  19. Heap-Unlink一谈
  20. 《Microsoft SQL Server入门教程》第03篇 示例数据库和示例表

热门文章

  1. 里程碑:DTrace 切换到 GPL 许可证
  2. 云服务收入年增长28%
  3. 5 个针对有经验用户的 Vim 实用技巧
  4. NSTimer用法,暂停,继续,初始化
  5. 系统开出出现问题~~~\WINDOWS\SYSTEM32\CONFIG\SYSTEM 损坏或丢失无法开机
  6. 嵌入式Linux学习路线
  7. 查看binlog文件的2种方式
  8. mac 下 mamp 配置虚拟主机步骤
  9. cocos2dx luajavaBridge 学习笔记
  10. 一步一步写算法(之prim算法 中)