![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 94
-Willing-
23岁,我想做点有意义的事。
展开
-
《ARMv8-A编程指南》阅读笔记-04
第六章 A64指令集许多编程人员在应用层写代码,不需要接触底层的汇编语言。然而,汇编语言在需要高度优化的代码段中是非常有用的。在写编译器这种类型的应用时。需要使用C语言没有实现的底层功能时。对boot代码进行移植时。编写硬件驱动和操作系统时。在对C语言代码进行调试,需要理解汇编指令和C语句之间的映射时。以上场景中汇编语言的阅读能力可以提供很大的帮助。6.1 指令助记符A64汇编语言对助记符进行重载,并且按照操作寄存器的名称对不同形式的指令进行区分。例如,ADD指令,尽管下面几种ADD指原创 2021-01-23 00:57:38 · 1950 阅读 · 0 评论 -
《ARMv8-A编程指南》阅读笔记-03
第五章 ARMv8指令级简介ARMv8架构最重大的变化之一就是引入了64位的指令集,对已有的32位指令级的起到补充作用。新加入的特性包括:64位宽整数的寄存器访问和操作,以及使用64位长度的指针对存储空间的访问。新的指令级称为A64,并在AArch64运行状态下使用。ARMv8也支持原有的ARM指令级,改称作A32,与新加入的A64相对应。同样支持Thumb(T32)指令集。A32和T32均在AArch32模式下运行,并且后向兼容ARMv7。尽管ARMv8-A具有对32位ARM指令的后向兼容性,但A64原创 2020-12-25 00:10:38 · 1201 阅读 · 4 评论 -
《ARMv8-A编程指南》阅读笔记-02
第四章 ARMv8寄存器4.1 通用寄存器AArch64运行模式提供31个64位的通用寄存器,这些寄存器在所有异常等级(EL)和时间段内都是可用的。编号从X0到X30。从上图中我们注意到,支持AArch32运行模式的32位寄存器实际上是复用64位寄存器的低字。在AArch32运行模式实际操作中,有如下过程。写入:在AArch32的运行模式下写入寄存器会清空64位寄存器的高32位。读取:忽略高32位的数据,不同于写入过程,寄存器的高32位将保持不变。4.2 AArch64特殊寄存器除了31原创 2020-11-07 10:34:08 · 1284 阅读 · 0 评论 -
《ARMv8-A编程指南》阅读笔记-01
前言ARMv8是ARM公司在2013年推出的架构,对于面向系统底层开发的工程师来说,准确理解ARM处理器内部的工作原理是至关重要的。本书专注于陈述处理器的行为,而不会详细解释处理器内部的工作原理以及如此设计的原因。第一章 简介ARMv8有64-bit或32-bit两种运行状态,分别用AArch64和AArch32表示,其中AArch32的保留使v8架构向后兼容ARMv7。换句话说,基于ARMv7架构编写的代码可以在v8架构上运行,但是反过来不行。Cortex-A系列处理器以及它们所属的架构如下所示原创 2020-11-05 17:41:18 · 1956 阅读 · 7 评论