本篇主要提供ARM体系结构编程与实践奔跑吧Linux社区著基于树莓派4B开发板系统介绍arm体系结构书籍电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
本书旨在详细介绍ARM64体系结构的相关技术。本书*先介绍了ARM64体系结构的基础知识、搭建树莓派实验环境的方法,然后讲述了ARM64指令集中的加载与存储指令、算术与移位指令、比较与跳转等指令以及ARM64指令集中的陷阱,接着讨论了GNU汇编器、*器、*脚本、GCC内嵌汇编代码、异常处理、中断处理、GIC-V2,后剖析了内存管理、*速缓存、缓存**性、TLB管理、内存屏障指令、原子作、作系统等内容。
本书适合嵌入式开发人员阅读。
*章 ARM64体系结构基础知识 *
*.* ARM介绍 *
*.2 ARMv8体系结构基础知识 2
*.2.* ARMv8体系结构 2
*.2.2 采用ARMv8体系结构的常见处理器内核 3
*.2.3 ARMv8体系结构中的基本概念 3
*.2.4 A64指令集 4
*.2.5 ARMv8处理器执行状态 4
*.2.6 ARMv8支持的数据宽度 5
*.3 ARMv8寄存器 5
*.3.* 通用寄存器 5
*.3.2 处理器状态 6
*.3.3 *殊寄存器 7
*.3.4 系统寄存器 *0
*.4 Corte-A72处理器介绍 *0
*.5 ARMv9体系结构介绍 *3
2章 搭建树莓派实验环境 *4
2.* 树莓派介绍 *4
2.2 搭建树莓派实验环境 *5
2.2.* 配置串口线 *6
2.2.2 安装树莓派官方OS *8
2.2.3 实验2-*:输出“Welcome BenOS!” *9
2.2.4 实验2-2:使用GDB与QEMU虚拟机调试BenOS 20
2.2.5 实验2-3:使用J-Link EDU仿真器调试树莓派 2*
2.3 BenOS基础实验代码解析 27
2.4 QEMU虚拟机与ARM64实验平台 32
3章 A64指令集*——加载与存储指令 35
3.* A64指令集介绍 36
3.2 A64指令编码格式 37
3.3 加载与存储指令 38
3.3.* 基于基地址的寻址模式 39
3.3.2 变基模式 4*
3.3.3 PC相对地址模式 42
3.3.4 LDR伪指令 43
3.4 加载与存储指令的变种 44
3.4.* *同位宽的加载与存储指令 44
3.4.2 *可扩展的加载和存储指令 45
3.4.3 多字节内存加载和存储指令 46
3.4.4 *占内存访问指令 48
3.4.5 隐含加载-获取/存储-释放
内存屏障原语 48
3.4.6 非*权访问级别的加载和存储指令 48
3.5 入栈与出栈 49
3.6 MOV指令 5*
3.7 陷阱:你用对加载与存储指令了吗 52
3.8 实验 53
3.8.* 实验3-*:熟悉MOV和LDR指令 53
3.8.2 实验3-2:前变基与后变基寻址模式* 53
3.8.3 实验3-3:前变基与后变基寻址模式2 54
3.8.4 实验3-4:PC相对地址寻址 54
3.8.5 实验3-5:memcpy()函数的实现 54
3.8.6 实验3-6:LDP和STP指令的使用 55
4章 A64指令集2——算术与移位指令 56
4.* 条件作码 57
4.2 加法与减法指令 57
4.2.* ADD指令 58
4.2.2 ADDS指令 60
4.2.3 ADC指令 6*
4.2.4 SUB指令 6*
4.2.5 SUBS指令 64
4.2.6 SBC指令 64
4.3 CMP指令 65
4.4 关于条件标志位的示例 67
4.5 移位指令 68
4.6 位作指令 68
4.6.* 与作指令 68
4.6.2 或作指令 69
4.6.3 位*作指令 7*
4.6.4 CLZ指令 7*
4.7 位段作指令 7*
4.7.* 位段插入作指令 7*
4.7.2 位段提取作指令 72
4.8 实验 73
4.8.* 实验4-*:测试ADDS和CMP指令的C标志位 73
4.8.2 实验4-2:条件标志位的使用 74
4.8.3 实验4-3:测试ANDS指令以及Z标志位 74
4.8.4 实验4-4:测试位段作指令 74
4.8.5 实验4-5:使用位段指令来读取寄存器 74
5章 A64指令集3——比较指令与跳转指令 76
5.* 比较指令 76
5.*.* CMN指令 76
5.*.2 CSEL指令 77
5.*.3 CSET指令 78
5.*.4 CSINC指令 78
5.2 跳转与返回指令 79
5.2.* 跳转指令 79
5.2.2 返回指令 80
5.2.3 比较并跳转指令 80
5.3 陷阱:为什么在RET指令之后系统*崩溃了 80
5.4 实验 82
5.4.* 实验5-*:CMP和CMN指令 82
5.4.2 实验5-2:条件选择指令 82
5.4.3 实验5-3:子函数跳转 82
6章 A64指令集4——其他重要指令 83
6.* PC相对地址加载指令 83
6.2 LDR和ADRP指令的区别 85
6.3 内存*占访问指令 85
6.4 异常处理指令 86
6.5 系统寄存器访问指令 87
6.6 内存屏障指令 88
6.7 实验 88
6.7.* 实验6-*:测试ADRP和LDR伪指令 88
6.7.2 实验6-2:ADRP和LDR伪指令的陷阱 89