第 1章 汇编语言基础知识 1 1.1 汇编语言简介 1 1.1.1 程序设计语言发展历程 1 1.1.2 计算机指令系统 1 1.1.3 汇编语言的组成 2 1.1.4 为什么要学习汇编语言 2 1.2 计算机中数据的表示 3 1.2.1 不同进位计数制及其相互转换 3 1.2.2 二进制数和十六进制数的运算 5 1.2.3 带符号数的补码表示 6 1.2.4 补码的加法和减法 7 1.2.5 无符号数的表示 8 1.2.6 字符的表示 8 1.2.7 基本逻辑运算 9 本章小结 9 习题1 9 第 2章 计算机基本原理 10 2.1 计算机系统组成 10 2.2 CPU中的寄存器 11 2.2.1 16位结构的CPU 11 2.2.2 寄存器介绍 12 2.2.3 CS和IP 15 2.2.4 堆栈 15 2.3 存储器 16 2.3.1 存储器 16 2.3.2 存储器分段 17 2.3.3 逻辑地址 18 2.3.4 CPU对内存的读写操作 20 2.4 外部设备和接口 21 2.5 32位80x86CPU的工作模式 21 本章小结 22 习题2 22 第3章 汇编语言程序实例及上机操作 23 3.1 汇编语言的工作环境 23 3.1.1 汇编语言的系统工作文件 23 3.1.2 进入汇编环境方式 23 3.1.3 常用的DOS命令 26 3.2 汇编语���程序实例 27 3.3 程序实例的上机步骤 28 3.3.1 编辑——建立ASM源程序文件 28 3.3.2 汇编——产生OBJ二进制目标文件 29 3.3.3 连接——产生EXE可执行文件 29 3.3.4 LST列表文件 30 3.3.5 程序的运行 32 3.3.6 程序的跟踪和调试 33 3.4 常用的Debug指令 36 3.5 常用的DOS系统功能调用 38 本章小结 40 习题3 40 第4章 操作数的寻址方式 42 4.1 立即寻址方式 42 4.2 寄存器寻址方式 43 4.3 存储器寻址方式 44 4.3.1 直接寻址方式 44 4.3.2 寄存器间接寻址方式 46 4.3.3 寄存器相对寻址方式 47 4.3.4 基址变址寻址方式 48 4.3.5 相对基址变址寻址方式 49 本章小结 49 习题4 49 第5章 常用指令系统 51 5.1 数据传送指令 52 5.1.1 通用数据传送指令 52 5.1.2 累加器专用传送指令 56 5.1.3 地址传送指令 58 5.1.4 标志寄存器传送指令 58 5.2 算术运算指令 59 5.2.1 类型扩展指令 59 5.2.2 加法指令 61 5.2.3 减法指令 64 5.2.4 乘法指令 67 5.2.5 除法指令 68 5.2.6 BCD码的十进制调整指令 71 5.3 逻辑与移位指令 72 5.3.1 逻辑指令 72 5.3.2 移位指令 73 5.4 串操作指令 75 5.4.1 MOVS串传送指令 75 5.4.2 CMPS串比较指令 77 5.4.3 SCAS串扫描指令 79 5.4.4 STOS串存入指令 80 5.4.5 LODS从串中取数指令 81 5.5 指令编码 82 5.5.1 单操作数指令编码 82 5.5.2 双操作数指令编码 85 5.5.3 其他指令编码 87 本章小结 88 习题5 88 第6章 伪指令与源程序格式 91 6.1 伪指令 91 6.1.1 处理机选择伪指令 91 6.1.2 段定义伪指令 91 6.1.3 程序开始和结束伪指令 93 6.1.4 数据定义与存储器单元分配伪指令 93 6.1.5 类型属性操作符 94 6.1.6 THIS操作符和LABEL伪操作 95 6.1.7 表达式赋值伪指令“EQU”和“=” 96 6.1.8 汇编地址计数器$与定位伪指令 96 6.1.9 基数控制伪指令 97 6.1.10 过程定义伪指令 98 6.2 表达式和操作符 98 6.3 EXE文件与COM文件 102 6.3.1 程序段前缀PSP 102 6.3.2 COM文件 103 本章小结 104 习题6 104 第7章 分支与循环程序设计 107 7.1 分支程序设计 107 7.1.1 分支程序转移指令 107 7.1.2 分支程序结构 112 7.1.3 单分支程序 112 7.1.4 复合分支程序 113 7.1.5 多分支程序 116 7.2 循环程序设计 118 7.2.1 循环程序转移指令 118 7.2.2 循环程序结构 119 7.2.3 计数循环程序 120 7.2.4 条件循环程序 121 7.2.5 条件计数循环程序 123 7.2.6 多重循环程序 125 本章小结 126 习题7 126 第8章 子程序设计 128 8.1 子程序结构 128 8.1.1 子程序调用指令 128 8.1.2 过程定义与过程结构 129 8.1.3 保存和恢复现场寄存器 131 8.2 子程序的参数传递 131 8.2.1 用寄存器传递参数 131 8.2.2 用变量传递参数 134 8.2.3 用地址表传递参数的通用子程序 136 8.2.4 用堆栈传递参数的通用子程序 139 8.2.5 用结构变量传递参数的通用子程序 143 本章小结 146 习题8 146 第9章 **汇编语言程序设计 149 9.1 **程序设计特性 149 9.1.1 条件控制伪指令 149 9.1.2 循环控制伪指令 150 9.1.3 过程声明和过程调用伪指令 151 9.2 宏汇编程序设计 151 9.2.1 宏汇编 152 9.2.2 其他**伪操作 158 9.2.3 宏汇编应用 163 9.3 模块化程序设计 166 9.3.1 多模块源程序 166 9.3.2 多模块目标代码 167 9.3.3 子程序库 168 9.3.4 多模块应用 168 9.4 输入/输出程序设计 172 9.4.1 外部设备与输入/输出 173 9.4.2 中断 177 9.4.3 中断处理程序设计 182 9.4.4 输入/输出应用 185 本章小结 201 习题9 201 第 10章 32位汇编指令简介 204 10.1 32位硬件架构 204 10.1.1 IA-32位处理器 204 10.1.2 存储器组织 207 10.2 数据寻址方式 208 10.2.1 立即数寻址方式 208 10.2.2 寄存器寻址方式 209 10.2.3 存储器寻址方式 209 10.3 指令格式 211 10.3.1 数据传送指令 211 10.3.2 位操作指令 212 10.3.3 串操作指令 213 10.3.4 算术指令和其他指令 213 10.3.5 条件测试并设置指令 215 10.4 编程举例 215 10.4.1 Windows汇编语言特点 215 10.4.2 Win32 汇编程序示例 216 本章小结 219 习题10 219 第 11章 MIPS指令系统简介 221 11.1 MIPS体系结构与指令集 221 11.1.1 MIPS通用寄存器 221 11.1.2 MIPS指令格式 223 11.2 MIPS 32位汇编常用指令 227 11.2.1 算术运算类指令 227 11.2.2 逻辑运算类指令 232 11.2.3 移位指令和置位指令 233 11.2.4 转移指令 236 11.2.5 访存指令 239 11.3 MIPS 32位汇编寻址方式 240 11.3.1 操作数寻址方式 240 11.3.2 指令寻址方式 241 11.4 MIPS程序基础 243 11.4.1 MARS调试工具介绍 243 11.4.2 MIPS源程序框架 244 11.4.3 MIPS数据段定义 245 11.4.4 MIPS代码段定义 245 11.4.5 MIPS系统调用syscall 246 11.4.6 第 一个MIPS汇编程序 246 11.5 MIPS编程 247 11.5.1 MIPS汇编分支结构 247 11.5.2 MIPS汇编循环结构 250 习题11 253 附录1 80x86指令系统一览 256 附录2 伪操作与操作符 269 附录3 中断向量地址一览 281 附录4 DOS系统功能调用(INT 21H) 283 附录5 BIOS功能调用 290 附录6 Windows 104键键盘扫描码 294 参考文献 296