链接: https://pan.baidu.com/s/1tEMSux2vVaSEnX6rWZA5EQ?pwd=ecyf 提取码: ecyf
店铺: 人民邮电出版社官方旗舰店
出版社: 人民邮电出版社
ISBN:9787115582102
商品编码:10063454224966
出版时间:2022-04-01
审图号:9787115582102
更多参数>>
内容介绍
本书旨在详细介绍ARM64体系结构的相关技术。本书*介绍了ARM64体系结构的基础知识、搭建树莓派实验环境的方法,然后讲述了ARM64指令集中的加载与存储指令、算术与移位指令、比较与跳转等指令以及ARM64指令集中的陷阱,接着讨论了GNU汇编器、链接器、链接脚本、GCC内嵌汇编代码、异常处理、中断处理、GIC-V2,*剖析了内存管理、高速缓存、缓存一致性、TLB管理、内存屏障指令、原子操作、操作系统等内容。
本书适合嵌入式开发人员阅读。
作者介绍
奔跑吧Linux社区 由一群志同道合的工程师组成,致力于Linux等开源软件与推广,为广大工程师和读者提供深入的开源知识分享。
目录
第 1章 ARM64体系结构基础知识 1
1.1 ARM介绍 1
1.2 ARMv8体系结构基础知识 2
1.2.1 ARMv8体系结构 2
1.2.2 采用ARMv8体系结构的常见处理器内核 3
1.2.3 ARMv8体系结构中的基本概念 3
1.2.4 A64指令集 4
1.2.5 ARMv8处理器执行状态 4
1.2.6 ARMv8支持的数据宽度 5
1.3 ARMv8寄存器 5
1.3.1 通用寄存器 5
1.3.2 处理器状态 6
1.3.3 特殊寄存器 7
1.3.4 系统寄存器 10
1.4 Cortex-A72处理器介绍 10
1.5 ARMv9体系结构介绍 13
第 2章 搭建树莓派实验环境 14
2.1 树莓派介绍 14
2.2 搭建树莓派实验环境 15
2.2.1 配置串口线 16
2.2.2 安装树莓派官方OS 18
2.2.3 实验2-1:输出“Welcome BenOS!” 19
2.2.4 实验2-2:使用GDB与QEMU虚拟机调试BenOS 20
2.2.5 实验2-3:使用J-Link EDU仿真器调试树莓派 21
2.3 BenOS基础实验代码解析 27
2.4 QEMU虚拟机与ARM64实验平台 32
第3章 A64指令集1——加载与存储指令 35
3.1 A64指令集介绍 36
3.2 A64指令编码格式 37
3.3 加载与存储指令 38
3.3.1 基于基地址的寻址模式 39
3.3.2 变基模式 41
3.3.3 PC相对地址模式 42
3.3.4 LDR伪指令 43
3.4 加载与存储指令的变种 44
3.4.1 不同位宽的加载与存储指令 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指令 51
3.7 陷阱:你用对加载与存储指令了吗 52
3.8 实验 53
3.8.1 实验3-1:熟悉MOV和LDR指令 53
3.8.2 实验3-2:前变基与后变基寻址模式1 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.1 条件操作码 57
4.2 加法与减法指令 57
4.2.1 ADD指令 58
4.2.2 ADDS指令 60
4.2.3 ADC指令 61
4.2.4 SUB指令 61
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.1 与操作指令 68
4.6.2 或操作指令 69
4.6.3 位*操作指令 71
4.6.4 CLZ指令 71
4.7 位段操作指令 71
4.7.1 位段插入操作指令 71
4.7.2 位段提取操作指令 72
4.8 实验 73
4.8.1 实验4-1:测试ADDS和CMP指令的C标志位 73
4.8.2 实验4-2:条件标志位的使用 74
4.8.3 实验4-3:测试ANDS指令以及Z标志位