本书主要介绍基于80x86的汇编语言程序设计方法和技术,第1章~第10章为主体部分,包括计算机基本组成结构和指令系统,循环、分支、子程序和宏汇编技术的程序设计;第11章为输入输出的一些典型应用,其中基本每章配有一组实验,共有10组实验题供选用和参考。 刘慧婷 博士,安徽大学计算机科学与技术学院副教授,主要研究项目及领域: 数据挖掘,教学经验丰富。其余作者都为安徽大学计算机科学与技术学院老师。 第1章 汇编语言基础知识11.1 汇编语言简介 11.1.1 机器语言与汇编语言 11.1.2 汇编语言的组成 21.1.3 为什么要学习汇编语言 21.2 计算机中数据的表示 21.2.1 不同进位计数制及其相互转换 21.2.2 二进制数和十六进制数的运算 41.2.3 带符号数的补码表示 51.2.4 补码的加法和减法 61.2.5 无符号数的表示 71.2.6 字符的表示 71.2.7 基本逻辑运算 8本章小结 9习题1 9第2章 计算机基本原理 102.1 计算机系统组成 102.2 存储器 112.2.1 16位结构的CPU 112.2.2 存储器 112.2.3 存储器分段 132.2.4 逻辑地址 142.2.5 CPU对内存的读写操作 152.3 中央处理器(CPU)中的寄存器 172.3.1 寄存器介绍 172.3.2 CS和IP 202.3.3 堆栈 202.4 外部设备和接口 212.5 32位80x86CPU的工作模式 21习题2 22实验1 用Debug命令查看寄存器和内存中的内容 22第3章 汇编语言程序实例及上机操作 283.1 汇编语言的工作环境 283.1.1 汇编语言的系统工作文件 283.1.2 进入DOS命令行的方式 293.1.3 常用的DOS命令 293.2 汇编语言程序实例 313.2.1 单个字符的键盘输入与显示输出 313.2.2 显示字符串 323.3 程序实例的上机步骤 333.3.1 编辑——建立ASM源程序文件 333.3.2 汇编——产生OBJ二进制目标文件 343.3.3 连接——产生EXE可执行文件 343.3.4 LST列表文件 343.3.5 程序的运行 363.3.6 程序的跟踪和调试 363.4 在WIN7系统中执行汇编 393.5 几个常用的DOS系统功能调用(INT 21H) 42本章小结 44习题3 44实验2 上机过程及程序调试 45第4章 操作数的寻址方式 474.1 立即寻址方式 474.2 寄存器寻址方式 484.3 直接寻址方式 494.4 寄存器间接寻址方式 514.5 寄存器相对寻址方式 524.6 基址变址寻址方式 534.7 相对基址变址寻址方式 54本章小结 55习题4 56实验3 不同寻址方式的灵活运用 56第5章 常用指令系统 615.1 数据传送指令 625.1.1 通用数据传送指令 625.1.2 累加器专用传送指令 655.1.3 地址传送指令 675.1.4 标志寄存器传送指令 685.2 算术运算指令 695.2.1 类型扩展指令 695.2.2 加法指令 705.2.3 减法指令 735.2.4 乘法指令 765.2.5 除法指令 775.2.6 BCD码的十进制调整指令 795.3 逻辑与移位指令 815.3.1 逻辑指令 815.3.2 移位指令 825.4 串操作指令 845.4.1 MOVS串传送指令 845.4.2 CMPS串比较指令 865.4.3 SCAS串扫描指令 885.4.4 STOS串存入指令 895.4.5 LODS从串中取数指令 905.5 程序转移指令 915.5.1 无条件转移指令与程序的可重新定位 915.5.2 条件转移指令 935.5.3 循环指令 96本章小结 97习题5 97实验4 算术及位串处理程序 100第6章 伪指令与源程序格式 1016.1 伪指令 1016.1.1 处理机选择伪指令 1016.1.2 段定义伪指令 1016.1.3 程序开始和结束伪指令 1036.1.4 数据定义与存储器单元分配伪指令 1036.1.5 类型属性操作符 1056.1.6 THIS操作符和LABEL伪操作 1056.1.7 表达式赋值伪指令“EQU”和“=” 1066.1.8 汇编地址计数器$与定位伪指令 1066.1.9 基数控制伪指令 1086.1.10 过程定义伪指令 1086.2 语句格式 1096.2.1 名字项和操作项 1096.2.2 表达式和操作符 1096.3 EXE文件与COM文件 1126.3.1 程序段前缀PSP 1126.3.2 COM文件 114本章小结 115习题6 115实验5 伪指令 117第7章 分支与循环程序设计 1197.1 分支程序设计 1197.1.1 分支程序结构 1197.1.2 单分支程序 1207.1.3 复合分支程序 1217.1.4 多分支程序 1237.2 循环程序设计 1257.2.1 循环程序结构 1257.2.2 计数循环程序 1267.2.3 条件循环程序 1277.2.4 条件计数循环程序 1297.2.5 多重循环程序 131本章小结 132习题7 132实验6 分支程序设计 134实验7 循环程序设计 134第8章 子程序设计 1358.1 子程序结构 1358.1.1 子程序调用指令 1358.1.2 过程定义与过程结构 1368.1.3 保存和恢复现场寄存器 1388.2 子程序的参数传递 1388.2.1 用寄存器传递参数 1398.2.2 用变量传递参数 1428.2.3 用地址表传递参数的通用子程序 1448.2.4 用堆栈传递参数的通用子程序 1478.2.5 用结构变量传递参数的通用子程序 1518.3 多模块程序设计 1548.3.1 多模块之间的参数传递 1548.3.2 显示十进制数的通用模块 1568.3.3 C语言程序调用汇编语言子程序 159本章小结 160习题8 160实验8 子程序设计和多模块程序设计 161第9章 宏汇编及其他高级伪操作 1639.1 宏汇编 1639.1.1 宏定义、宏调用和宏展开 1639.1.2 宏定义的嵌套 1669.1.3 宏定义中使用宏调用 1679.1.4 带间隔符的实参 1679.1.5 连接操作符 1689.1.6 宏替换操作符% 1689.1.7 LOCAL伪操作 1699.1.8 使用宏库文件 1709.2 其他高级伪操作 1739.2.1 PURGE伪操作 1739.2.2 列表伪操作 1739.2.3 重复汇编 1739.2.4 条件汇编 176习题9 178实验9 宏汇编程序设计 179第10章 输入/输出和中断 18010.1 外部设备与输入/输出 18010.1.1 I/O 端口 18010.1.2 I/O的数据传送控制方式 18210.2 中断 18410.2.1 中断的概念 18410.2.2 中断向量表 18710.2.3 中断过程 18910.2.4 中断调
阅读更多