内容简介
汇编语言程序设计—基于ARM体系结构(第3版)
本书是学习嵌入式技术的入门教材,是学习嵌入式系统原理与接口技术、嵌入式系统设计与应用等知识的前导教材。
本书基于ARM体系结构进行汇编语言的教学。全书的内容分成3个部分:第一部分主要介绍汇编语言程序设计的基础知识和ARM系列微处理器,包括第1、2章;第二部分主要介绍基于ARM体系结构的指令系统、汇编程序设计以及异常中断编程,包括第3、4、5章;第三部分主要是MDK集成开发环境的使用和ARM汇编语言程序实验,包括第6、7章。本书是再版书,相比第2版,本书修订了旧版的一些错误,并更新了部分内容。
本书配套资料包含相关章节程序源代码及其他相关资料,读者可以到北京航空航天大学出版社网站的“下载专区”免费下载。
本书可作为高等院校计算机及相关专业的汇编语言程序设计课程的教材或参考书,也可供使用汇编语言的工程技术人员参考。
目录
第1章 基础知识……………………………………………………………………… 1
1.1 数制与数制转换……………………………………………………………… 1
1.1.1 数制的基本概念………………………………………………………… 1
1.1.2 二进制数………………………………………………………………… 2
1.1.3 十进制和二进制之间的转换…………………………………………… 3
1.1.4 二进制和其他进制之间的转换………………………………………… 4
1.2 二进制数的基本运算………………………………………………………… 5
1.3 计算机中的编码……………………………………………………………… 6
1.3.1 数字的编码……………………………………………………………… 6
1.3.2 字符的编码……………………………………………………………… 7
1.3.3 汉字的编码……………………………………………………………… 8
1.3.4 统一代码………………………………………………………………… 10
1.3.5 语音编码………………………………………………………………… 11
1.3.6 差错控制编码…………………………………………………………… 12
1.4 计算机中有符号数的表示…………………………………………………… 18
1.4.1 机器数与真值…………………………………………………………… 18
1.4.2 原码、反码与补码……………………………………………………… 19
1.4.3 补码的加法运算………………………………………………………… 21
1.4.4 定点数与浮点数………………………………………………………… 22
1.5 基本逻辑运算………………………………………………………………… 24
1.5.1 与运算…………………………………………………………………… 24
1.5.2 或运算…………………………………………………………………… 24
1.5.3 非运算…………………………………………………………………… 25
1.5.4 异或运算………………………………………………………………… 25
习题一…………………………………………………………………………… 26
第2章 ARM 微处理器基础……………………………………………………… 27
2.1 嵌入式系统概述……………………………………………………………… 27
2.1.1 嵌入式系统的基本概念………………………………………………… 27
2.1.2 嵌入式系统的发展……………………………………………………… 29
2.1.3 嵌入式系统的组成结构………………………………………………… 31
2.1.4 嵌入式处理器…………………………………………………………… 36
2.1.5 典型嵌入式处理器介绍………………………………………………… 38
2.2 ARM 概述…………………………………………………………………… 40
2.2.1 计算机体系结构的分类………………………………………………… 40
2.2.2 ARM 技术的发展过程………………………………………………… 41
2.3 ARM 内核的特点…………………………………………………………… 46
2.3.1 RISC技术……………………………………………………………… 46
2.3.2 流水线技术……………………………………………………………… 47
2.3.3 超标量技术……………………………………………………………… 48
2.4 基于ARM 核的微处理器………………………………………………… 48
2.4.1 基于ARM 核的硬件结构……………………………………………… 48
2.4.2 ARM 核的数据流模型………………………………………………… 49
2.4.3 ARM 处理器工作模式和工作状态…………………………………… 50
2.5 ARM 寄存器………………………………………………………………… 51
2.5.1 通用寄存器……………………………………………………………… 52
2.5.2 状态寄存器……………………………………………………………… 53
2.5.3 Thumb寄存器………………………………………………………… 56
2.6 ARM 的存储系统简介……………………………………………………… 57
2.6.1 存储器的层次结构……………………………………………………… 57
2.6.2 数据类型与存储器格式………………………………………………… 59
2.6.3 非对齐的存储器访问…………………………………………………… 61
习题二……………………………………………………………………………… 62
第3章 ARM 指令系统…………………………………………………………… 63
3.1 指令基础……………………………………………………………………… 63
3.1.1 程序设计语言的层次结构……………………………………………… 63
3.1.2 指令周期和时序………………………………………………………… 64
3.1.3 程序的执行过程………………………………………………………… 66
3.2 ARM 汇编语言……………………………………………………………… 67
3.2.1 指令和指令格式………………………………………………………… 67
3.2.2 指令的可选后缀………………………………………………………… 68
3.2.3 指令的条件执行………………………………………………………… 69
3.2.4 ARM 指令分类………………………………………………………… 71
3.3 ARM 指令的寻址方式……………………………………………………… 71
3.3.1 立即数寻址……………………………………………………………… 72
3.3.2 寄存器寻址……………………………………………………………… 72
3.3.3 寄存器间接寻址………………………………………………………… 72
3.3.4 寄存器移位寻址………………………………………………………… 73
3.3.5 基址变址寻址…………………………………………………………… 73
3.3.6 多寄存器寻址…………………………………………………………… 74
3.3.7 相对寻址………………………………………………………………… 75
3.3.8 堆栈寻址………………………………………………………………… 75
3.4 数据处理指令………………………………………………………………… 76
3.4.1 数据传送指令…………………………………………………………… 77
3.4.2 移位操作………………………………………………………………… 77
3.4.3 算术指令………………………………………………………………… 81
3.4.4 逻辑运算指令…………………………………………………………… 85
3.4.5 比较指令………………………………………………………………… 87
3.4.6 乘法指令………………………………………………………………… 88
3.5 数据加载与存储指令………………………………………………………… 91
3.5.1 数据加载与存储指令概述……………………………………………… 92
3.5.2 单寄存器加载与存储指令……………………………………………… 94
3.5.3 多寄存器加载与存储指令…………………………………………… 100
3.5.4 堆栈操作……………………………………………………………… 104
3.5.5 交换指令……………………………………………………………… 106
3.6 分支指令…………………………………………………………………… 107
3.6.1 分支指令B …………………………………………………………… 108
3.6.2 带返回的分支指令BL ……………………………………………… 109
3.6.3 带状态切换的分支指令BX ………………………………………… 110
3.6.4 带返回和状态切换的分支指令BLX………………………………… 111
3.7 程序状态寄存器访问指令………………………………………………… 112
3.8 协处理器指令……………………………………………………………… 114
3.9 软件中断指令……………………………………………………………… 118
3.10 ARM 伪指令……………………………………………………………… 120
3.11 Thumb指令集…………………………………………………………… 122
3.11.1 概 述………………………………………………………………… 122
3.11.2 Thumb指令寄存器的使用………………………………………… 125
3.11.3 ARM??Thumb交互………………………………………………… 125
3.11.4 数据处理指令………………………………………………………… 127
3.11.5 单寄存器加载和存储指令…………………………………………… 129
3.11.6 多寄存器加载和存储指令…………………………………………… 130
3.11.7 堆栈指令……………………………………………………………… 131
3.11.8 软件中断指令………………………………………………………… 132
3.12 Thumb伪指令…………………………………………………………… 132
习题三…………………………………………………………………………… 133
第4章 ARM 汇编语言程序设计………………………………………………… 135
4.1 汇编语言程序格式………………………………………………………… 135
4.1.1 汇编语言的基本概念………………………………………………… 135
4.1.2 汇编语言源程序的组成……………………………………………… 136
4.1.3 汇编语言程序中常用的符号………………………………………… 139
4.1.4 汇编语言程序中的表达式和运算符………………………………… 141
4.2 ARM 汇编器的伪操作…………………………………………………… 144
4.2.1 符号定义伪操作……………………………………………………… 145
4.2.2 数据定义伪操作……………………………………………………… 146
4.2.3 汇编控制伪操作……………………………………………………… 151
4.2.4 信息报告伪操作……………………………………………………… 154
4.2.5 其他常用的伪操作…………………………………………………… 156
4.3 汇编语言程序的上机过程………………………………………………… 161
4.3.1 汇编语言上机环境…………………………………………………… 161
4.3.2 编辑汇编语言源程序………………………………………………… 163
4.3.3 编译链接源程序……………………………………………………… 165
4.3.4 调试汇编程序………………………………………………………… 166
4.4 汇编语言程序设计………………………………………………………… 166
4.4.1 程序设计步骤………………………………………………………… 166
4.4.2 简单程序设计………………………………………………………… 168
4.4.3 分支程序设计………………………………………………………… 169
4.4.4 循环程序设计………………………………………………………… 173
4.4.5 子程序设计…………………………………………………………… 177
4.4.6 汇编程序举例………………………………………………………… 179
4.5 工作模式切换编程………………………………………………………… 182
4.5.1 处理器模式…………………………………………………………… 182
4.5.2 处理器工作模式切换编程…………………………………………… 182
4.6 ATPCS介绍……………………………………………………………… 183
4.6.1 寄存器的使用规则…………………………………………………… 184
4.6.2 数据栈使用规则……………………………………………………… 185
4.6.3 参数传递规则………………………………………………………… 186
4.6.4 ARM 和Thumb程序混合使用的ATPCS ………………………… 187
4.7 ARM 和Thumb混合编程………………………………………………… 187
4.7.1 工作状态……………………………………………………………… 187
4.7.2 工作状态切换编程…………………………………………………… 189
4.8 汇编语言和C语言交互编程……………………………………………… 192
4.8.1 汇编程序访问C程序变量…………………………………………… 192
4.8.2 汇编程序调用C程序………………………………………………… 193
4.8.3 C程序内嵌汇编指令………………………………………………… 194
4.8.4 C程序调用汇编程序………………………………………………… 200
习题四…………………………………………………………………………… 201
第5章 异常中断编程……………………………………………………………… 203
5.1 ARM 的异常和中断……………………………………………………… 203
5.1.1 异常和中断的基本概念……………………………………………… 203
5.1.2 ARM 的异常中断…………………………………………………… 204
5.1.3 向量表………………………………………………………………… 205
5.1.4 异常的优先级别……………………………………………………… 207
5.2 ARM 异常中断的处理过程……………………………………………… 208
5.2.1 异常中断响应过程…………………………………………………… 208
5.2.2 异常中断的返回……………………………………………………… 210
5.3 复位处理程序……………………………………………………………… 214
5.3.1 复 位………………………………………………………………… 214
5.3.2 复位处理编程………………………………………………………… 215
5.4 SWI异常中断处理程序…………………………………………………… 217
5.4.1 SWI异常中断处理程序的实现……………………………………… 217
5.4.2 SWI异常中断调用…………………………………………………… 220
5.5 FIQ 和IRQ 异常中断处理程序…………………………………………… 225
5.5.1 IRQ/FIQ 中断处理机制……………………………………………… 225
5.5.2 IRQ/FIQ 异常中断处理程序………………………………………… 228
5.5.3 IRQ 异常中断处理程序举例………………………………………… 230
5.6 未定义指令异常中断……………………………………………………… 231
习题五…………………………………………………………………………… 232
第6章 RealView MDK 软件的使用……………………………………………… 233
6.1 嵌入式系统开发基础……………………………………………………… 233
6.1.1 嵌入式系统开发流程………………………………………………… 233
6.1.2 嵌入式软件开发……………………………………………………… 234
6.1.3 DS开发平台简介……………………………………………………… 237
6.1.4 RealView MDK软件的安装………………………………………… 238
6.2 μVision集成开发环境介绍……………………………………………… 243
6.2.1 工程工作区…………………………………………………………… 244
6.2.2 工作区………………………………………………………………… 247
6.2.3 输出窗口……………………………………………………………… 248
6.2.4 菜单栏、工具栏和快捷键……………………………………………… 249
6.2.5 软件开发流程………………………………………………………… 253
6.3 程序的编辑………………………………………………………………… 254
6.3.1 工程项目创建………………………………………………………… 256
6.3.2 源文件的创建………………………………………………………… 258
6.3.3 工程项目管理………………………………………………………… 259
6.3.4 工程基本配置………………………………………………………… 260
6.4 程序的编译与链接………………………………………………………… 264
6.4.1 基本概念……………………………………………………………… 264
6.4.2 链接器的基本功能…………………………………………………… 268
6.4.3 分散加载描述文件…………………………………………………… 272
6.4.4 编译链接配置………………………………………………………… 273
6.4.5 编译链接工程………………………………………………………… 276
6.5 程序的调试………………………………………………………………… 277
6.5.1 调试模式……………………………………………………………… 277
6.5.2 调试前的配置………………………………………………………… 277
6.5.3 调试器的使用………………………………………………………… 279
6.5.4 调试窗口和对话框…………………………………………………… 280
6.5.5 Flash编程工具……………………………………………………… 290
6.5.6 调试命令和变量……………………………………………………… 292
6.5.7 调试函数简介………………………………………………………… 297
6.5.8 调试脚本的使用…………
汇编语言程序设计—基于ARM 体系结构(第3版) 下载 mobi epub pdf txt 电子书 格式