书籍 x86汇编语言程序设计的封面

x86汇编语言程序设计PDF电子书下载

许向阳编著

购买点数

12

出版社

武汉:华中科技大学出版社

出版时间

2020

ISBN

标注页数

327 页

PDF页数

339 页

图书目录

第1章 绪论 1

1.1 什么是汇编语言 1

1.1.1 机器语言 1

1.1.2 汇编语言 2

1.2 为什么学习汇编语言 4

1.3 如何学习汇编语言 7

1.4 汇编语言源程序举例 9

1.5 计算机中信息编码的奥秘 12

1.6 使用符号的说明 14

习题1 15

上机实践1 16

第2章 Intel中央处理器 17

2.1 Intel公司微处理器的发展史 17

2.2 Intel x86微处理器结构 19

2.3 执行部件 20

2.3.1 32位CPU中的通用寄存器 21

2.3.2 通用寄存器应用示例 22

2.4 标志寄存器 23

2.4.1 条件标志位 24

2.4.2 控制标志位 26

2.4.3 系统标志位 27

2.5 指令预取部件和指令译码部件 27

2.6 分段部件和分页部件 28

2.7 x86的三种工作方式 30

2.8 Intel公司酷睿微体系结构 31

习题2 33

上机实践2 34

第3章 主存储器及数据在计算机内的表示形式 35

3.1 主存储器 35

3.1.1 数据存储的基本形式 35

3.1.2 数据地址的类型及转换 36

3.2 数值数据在计算机内的表示形式 37

3.2.1 有符号数和无符号数表示法 37

3.2.2 BCD码 38

3.3 字符数据在计算机内的表示形式 39

3.4 数据段定义 39

3.4.1 数据定义伪指令 40

3.4.2 表达式 40

3.4.3 汇编地址计数器 42

3.4.4 数据段定义示例 43

3.5 主存储器分段管理 44

3.6 主存储器物理地址的形成 45

3.6.1 8086和x86-32实方式下物理地址的形成 45

3.6.2 保护方式下物理地址的形成 47

习题3 50

上机实践3 51

第4章 寻址方式 53

4.1 寻址方式概述 53

4.2 立即寻址 54

4.3 寄存器寻址 56

4.4 直接寻址 57

4.4.1 直接寻址的基本概念 57

4.4.2 直接寻址的用法示例 58

4.5 寄存器间接寻址 60

4.5.1 寄存器间接寻址的基本用法 60

4.5.2 寄存器间接寻址与C语言指针的比较 62

4.6 变址寻址 63

4.7 基址加变址寻址 64

4.8 寻址方式综合举例 66

4.9 x86机器指令编码规则 68

4.10 8086/80386的寻址方式 73

习题4 74

上机实践4 78

第5章 常用机器指令 79

5.1 通用机器指令概述 79

5.2 数据传送指令 80

5.2.1 一般数据传送指令 80

5.2.2 带条件的数据传送指令 82

5.2.3 堆栈操作指令 83

5.2.4 标志寄存器传送指令 86

5.2.5 地址传送指令 88

5.3 算术运算指令 89

5.3.1 加法指令 90

5.3.2 减法指令 91

5.3.3 乘法指令 92

5.3.4 除法指令 94

5.3.5 符号扩展指令 95

5.4 逻辑运算指令 95

5.5 移位指令 97

5.6 位操作和字节操作指令 99

5.7 标志位控制指令和杂项指令 100

5.8 I/O指令 100

习题5 102

上机实践5 103

第6章 顺序和分支程序设计 105

6.1 概述 105

6.2 程序中的伪指令 107

6.2.1 处理器选择伪指令 107

6.2.2 存储模型说明伪指令 108

6.2.3 段定义及程序结束伪指令 109

6.3 转移指令 110

6.3.1 转移指令概述 110

6.3.2 简单条件转移指令 110

6.3.3 无符号条件转移指令 111

6.3.4 有符号条件转移指令 113

6.3.5 无条件转移指令 114

6.4 简单分支程序设计 115

6.4.1 C语言的if语句与汇编语句的对应关系 115

6.4.2 分支程序设计示例 117

6.4.3 分支程序设计注意事项 120

6.5 多分支程序设计 121

6.5.1 多分支向无分支的转化 121

6.5.2 switch语句的编译 123

6.6 条件控制流伪指令 125

习题6 128

上机实践6 129

第7章 循环程序设计 131

7.1 循环程序 131

7.1.1 循环程序的结构 131

7.1.2 循环控制方法 132

7.1.3 循环控制指令 134

7.2 单重循环程序设计 137

7.3 多重循环程序设计 139

7.4 循环程序中的细节分析 141

7.5 与C循环程序反汇编的比较 145

7.6 循环控制伪指令 148

习题7 150

上机实践7 151

第8章 子程序设计 152

8.1 子程序的概念 152

8.2 子程序的基本用法 153

8.2.1 子程序的定义 153

8.2.2 子程序的调用和返回 154

8.2.3 在主程序与子程序之间传递参数 155

8.2.4 子程序调用现场的保护 157

8.2.5 子程序设计应注意的问题 158

8.3 子程序应用示例 159

8.3.1 字符串的比较 159

8.3.2 数串转换 161

8.3.3 串数转换 163

8.3.4 自我修改返回地址的子程序 165

8.3.5 自我修改的子程序 168

8.4 C语言程序中函数的运行机理 169

8.5 汇编语言中子程序的高级用法 172

8.5.1 局部变量的定义和使用 173

8.5.2 子程序的原型说明、定义和调用 174

8.5.3 子程序的高级用法举例 176

8.6 递归子程序的设计 177

习题8 180

上机实践8 181

第9章 串处理程序设计 183

9.1 串操作指令简介 183

9.2 串传送指令 185

9.3 串比较指令 187

9.4 串搜索指令 189

9.5 向目的串中存数指令 190

9.6 从源串中取数指令 191

习题9 192

上机实践9 192

第10章 复合数据类型的定义和使用 194

10.1 结构体 194

10.1.1 结构体的定义 194

10.1.2 结构变量的定义 195

10.1.3 结构变量的访问 196

10.1.4 结构信息的自动计算 198

10.2 结构变量的数据存储 200

10.2.1 汇编语言中结构变量的存储 200

10.2.2 与C语言结构变量存储的差异 201

10.3 联合体 202

习题10 203

上机实践10 203

第11章 程序设计的其他方法 205

11.1 汇编语言多模块程序设计 205

11.2 C语言程序和汇编语言程序的混合 209

11.2.1 函数的申明和调用 209

11.2.2 变量的申明和访问 210

11.3 内嵌汇编 211

11.4 模块程序设计中的注意事项 213

11.5 宏功能程序设计 214

11.5.1 宏定义 214

11.5.2 宏调用 215

11.5.3 宏指令与子程序的比较 216

11.6 可执行文件的格式 217

习题11 223

上机实践11 224

第12章 中断和异常处理 225

12.1 中断与异常的基础知识 225

12.1.1 中断和异常的概念 225

12.1.2 中断描述符表 227

12.1.3 中断和异常的响应过程 229

12.1.4 软中断指令 230

12.2 Windows中的结构化异常处理 231

12.2.1 编写异常处理函数 231

12.2.2 异常处理程序的注册 232

12.2.3 全局异常处理程序的注册 234

12.3 C语言异常处理程序反汇编分析 236

习题12 239

上机实践12 239

第13章 Win32窗口程序设计 242

13.1 Win32窗口程序设计基础 242

13.1.1 窗口程序运行的基本过程 242

13.1.2 Windows消息 245

13.1.3 Win32窗口程序的开发环境 247

13.2 Win32窗口应用程序的结构 248

13.2.1 主程序 248

13.2.2 窗口主程序 248

13.2.3 窗口消息处理程序 249

13.3 窗口应用程序开发实例 250

13.3.1 不含资源的窗口程序 250

13.3.2 包含菜单和对话框的窗口程序 253

13.4 与C语言开发的窗口程序比较 260

习题13 264

上机实践13 264

第14章 x87 FPU程序设计 265

14.1 浮点数据 265

14.1.1 浮点数据在机内的表示形式 265

14.1.2 浮点类型变量的定义 267

14.2 x87 FPU的寄存器 268

14.2.1 x87 FPU数据寄存器 268

14.2.2 x87 FPU其他寄存器 269

14.3 x87 FPU指令 271

14.4 浮点数处理程序示例 274

习题14 277

上机实践14 277

第15章 MMX程序设计 278

15.1 MMX技术简介 278

15.2 MMX指令简介 280

15.3 MMX编程示例 282

15.4 使用C语言编写MMX应用程序 285

习题15 286

上机实践15 287

第16章 SSE程序设计 288

16.1 SSE技术简介 288

16.2 SSE指令简介 289

16.2.1 组合和标量单精度浮点指令 290

16.2.2 64位SIMD整数指令 292

16.2.3 状态管理指令 293

16.2.4 缓存控制指令 293

16.3 SSE2及后续版本的指令简介 293

16.3.1 组合双精度浮点数和标量双精度浮点数指令 294

16.3.2 64位和128位整数指令 295

16.4 SSE编程示例 296

16.5 使用C语言编写SSE应用程序 297

习题16 299

上机实践16 300

第17章 AVX程序设计 301

17.1 AVX技术简介 301

17.2 AVX指令简介 302

17.2.1 新引入的指令 302

17.2.2 功能扩展指令 303

17.3 AVX编程示例 304

习题17 306

上机实践17 306

第18章 x86-64位汇编程序设计 307

18.1 x86-64的运行环境 307

18.1.1 寄存器 307

18.1.2 寻址方式 308

18.1.3 指令系统 309

18.2 64位的程序设计 309

18.2.1 64位平台下与32位平台下的区别 309

18.2.2 显示一个消息框 312

18.2.3 浮点数运算 312

18.2.4 程序自我修改 313

18.3 x86-64机器指令编码规则 314

习题18 317

上机实践18 317

第19章 上机操作 318

19.1 创建工程和生成可执行程序 318

19.2 程序的调试 319

19.3 编译链接器的配置 322

19.4 其他操作 324

附录 ASCII字符表 326

参考文献 327

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包