本书以Intel8086/8088 CPU的指令为主,以实模式下80*86指令为辅,较系统地介绍了汇编语言的基本理论和程序设计方法,主要内容包括:汇编语言程序设计的基础知识、80*86的寻址方式和指令系统、汇编语言的程序框架及常用的伪指令和操作符、汇编语言程序设计的基本技术、高级汇编技术、利用汇编语言完成的I/O程序设计技术、汇编语言与C语言的?昆合编程以及汇编语言程序设计实验方法。各章内容重点突出、结构清晰、简洁易懂,每章后附有一定数量的以考题形式为主的习题。
实验方法中介绍了两种编译调试工具,为读者提供了方便:一种是MASM 5.0汇编、链接程序,主要用于8086/8088、80286系统的编译和调试(MASM和DEBUG),另一种是MicrosoftMASM6.11软件包,主要用于80386以上的系统的编译和凋试(PWB集成编译器和Codeview调试器)。
本书是高等院校计算机专业及相关专业本科教学用书,也可以作为计算机工作者、自学考试、学历文凭考试的参考教材。
第1章基础知识
1.1什么是汇编语言
1.1.1机器语言与汇编语言
1.1.2高级语言
1.1.3汇编语言的特点
1.1.4汇编语言与高级语言的比较
1.2进位计数制及转换方法
1.2.1常用的进位计数制
1.2.2数制之间的转换
1.3计算机中的数据组织
1.3.1数据组织方式
13.2数的表示方法
1.3.3字符的表示方法
1.4二进制的算术运算和逻辑运算
1.4.1二进制算术运算
1.4.2逻辑操作
1.5习题
第2章80x86计算机组织结构
2.180x86计算机的基本结构
2.1.1中央处理器
2.1.2总线结构
2.1.3存储器
2.1.斗外围设备
2.280x86CPU的寄存器
2.2.1通用寄存器
2.2.2控制寄存器
2.2.3段寄存器
2.3内存组织结构
2.3.1内存的地址与字节字的存放
2.3.2堆栈
2.480x86CPU的工作模式
2.4.1实模式
2.4.2保护模式
2.5存储器管理机制
2.5.1分段管理机制
2.52分页管理机制
2.6习题
第3章80x86指令系统和寻址方式
3.1指令格式
3.1.1指令的书写格式
3.1.2提供操作数的方式
3.2寻址方式
3.21与数据有关的寻址方式
3.2.232位CPU的寻址方式
3.2.3与转移地址有关的寻址方式
3.3指令系统
3.3.1数据传送指令
3.3.2算术运算指令
3.4习题
第4章汇编语言程序结构
4.1汇编语言程序的基本结构
4.1.1汇编程序的基本框架
4.1.2汇编语言的指令格式
4.2汇编语言的数据
4.2.1常量
4.2.2变量
4.2.3标号
4.2.4变量定义时用到的操作符和表达式
4.3运算符与表达式
4.31算术运算符
4.3.2逻辑运算符
4.3.3关系运算符
4.3.4数值回送操作符
4.3.5属性操作符(FIR、THIS、SHORT、HIGH、UW)
43.6移位运算符
4.3.7运算符的优先级
4.4伪指令
4.4.1完整段定义伪指令(SEGMENT、ENDS,ASSUME)
4.4.2处理器选择伪指令
4.4.3简化段定义伪指令
4.4.4定位伪指令ORG
4.4.5赋值伪指令(EQU、=)
4.4.6LABEL伪指令
4.4.7又寸准伪指令(EVEN)
4.4.8标题伪指令
4.5习题
第5章顺序、分支和循环程序设计
5.1顺序程序设计
5.2分支程序设计
5.2.1转移指令
5.2.2条件转移指令
5.2.3根据条件设置字节指令
5.2.4分支程序设计的应用举例
5.3循环程序设计
5.3.1循环程序结构
532循环控制指令
5.33单重循环的应用举例
5.3.4多重循环的应用举例
5.4习题
第6章子程序设计
6.1子程序的结构
6.1l子程序的定义
6.12子程序的调用与返回指令
6.13子程序的编程原则
6.1.4参数的传递
6.2子程序的嵌套与递归
6.2.1于程序的嵌套调用
6.2.2于程序的递归
6.3子程序应用举例
6.4习题
第7章高级汇编技术
7.1宏汇编
7.11宏定义
7.1.2宏调用和宏展开
7.1.3宏定义和调用时的参数使用
7.1.4宏定义的伪指令
7.1.5宏库的建立和使用
7.2重复汇编
7.2.1重复伪指令
7.3条件汇编
7.3.1条件汇编伪指令
7.3.2使用条件汇编伪指令的程序结构
7.4习题
第8章输入/输出与中断
8.1输入/输出设备的数据传送方式
8.1.1I/O端口
8.1.2I/O指令
8.1.31/(3设备的数据传送方式
8.280x86的中断系统
8.2.1中断的基本概念
8.2.2中断指令
8.2.3中断分类
8.2.4中断优先级和中断嵌套
8.2.5中断向量表
8.2.6中断过程
8.2.7如何编写中断处理程序
8.3BIOS与DOS中断系统
8.3.1BIOS与IX)S中断调用概述
8.3.2键盘I/O程序设计
8.3.3显示器I/O程序设计
8.3.4BIOS及DOS的时间功能调用
8.3.5图形系统程序设计
8.3.6发声系统程序设计
8.4习题
第9章磁盘文件存取方法
9.1以文件句柄方式存取文件
9.1.1DOS文件功能调用
9.1.2路径和ASCIIZ串
9.1.3文件句柄、错误代码和文件属性
9.14文件的打开方式
91.5读写指针的移动
9.2文件操作举例
9.3习题
第10章C/C++与汇编语言的接口设计
10.1嵌入式汇编
101.1嵌入式汇编的格式
10.1.2几点说明
10.1.3编译链接的方法
10.2C/C++程序调用汇编源程序
10.2.1一个简单的小例子
10.2.2编译链接的方法
10.2.3C/C什程序对汇编源程序的调用规则
l0.2.41VL&SM6.11环境F参数传递的变化
10.3习题
第11章汇编语言程序设计实验方法
11.1汇编语言上机步骤
11.2用MASM5.0汇编、链接程序
11.2.1运行汇编程序必备的条件
11.2.2执行汇编程序
11.2.3执行链接程序
11.3DEBUG调试器的使用
1.1.3.1DEBUG的主要特点
11.3.2通过DEBUG编写、运行汇编程序
11.3.3DEBUG的进入
11.3.4DUBUG的主要命令
11.3.5举例
11.4MicrosohMASM6.11软件包的使用
11.4.1安装MASM6.11
11.4.2安装后的任务
11.4.3PWB系统的进入和退出
11.4.4PWB主菜单
11.4.5设置PWB的开发环境
11.4.6PWB应用实例
11.5CodeView调试器的使用
11.5.1CodeVlew调试器的进入和退出
11.5.2CodeView调试器主窗口及功能键
11.5.3CodeView功能键
11.5.4CodeView环境设置
11.5.5用CodeView调试汇编程序
11.5.6在Commalld窗口调试程序
附录
附录A80x86指令系统一览表
附录BASCII码表
附录CmS系统功能调用(INT21H)
附录DBIOS功能调用HV
根据国家教委的要求,当前计算机领域的教学改革必须紧跟计算机技术的最新发展动态,用最新的知识、教材、手段结合学生的实际情况进行教学;用科学性强并简单易懂、生动活泼的形式进行教学;培养学生的自学能力、独立思考能力、分析和解决问题的能力。
本教材的主要特点是突出理论性、实践性、先进性、通俗性,力求自学方便,适用于普通高等院校,使学生在尽量短的时间内熟练掌握最基本的汇编语言的功能、用法和编程技巧。
根据8086/8088微处理器在80*86及Pentium微处理器的基础地位,在指令系统中仍以8086/8088指令为主,以80*86及Pentium指令为辅,但在实例中尽量采用80*86及Pentium指令,使读者在应用中熟悉80*86及Pentium的指令,在实验指导中则用汇编语言程序的两种结构方法和两种上机环境来介绍上机过程:
本教材力求重点突出、语言简洁,为了避免汇编指令的集中堆砌,书中采取部分指令在相关程序设计中介绍的方法。
在汇编程序设计方法中强调段定义的框架结构,即完整段定义和简化段定义框架,使读者容易掌握汇编程序设计方法,降低了汇编程序设计的复杂度。
在实例中采用CodeView调试工具来说明空间域的概念,使读者能清楚地了解地址结构、内存结构、寄存器结构和程序的执行过程。
在编程举例中采用实例分析、流程图、根据流程图编:写程序、程序说明4个步骤使读者深
入掌握汇编源程序编写的特点,突出了重点和难点以及汇编程序的编程技巧,使教材便于自
学,解决了汇编程序设计课程教学内容多、学时少、难学等问题。
在汇编语言程序没汁实验方法中,分别介绍了2种上机环境:8086/8088、80286编译、调试工具(MASM5.()和DEBUG)的使用;80386以上的上机编译、调试工具(MASM6.*以上版本的PWB编译器和CodeView调试器)的使用。重点在PWB编译器和(~deView调试器的使用上。使得80*86的所有指令得到很好的应用。
本教材第1~5章由马力妮老师编写,同时也参与编写其他章节的部分内容,第6、7章由侯凌燕老师编写,第8、9章由关静丽老师编写,第10、11章由施运梅老师编写,在此向参加本教材编写的老师表示衷心的感谢。
由于作者水平有限,不足或错误在所难免,恳请读者批评指正。
本教材中的所有例题的源程序和电子教案可以在机工网WWW.cmpbook.com上下载。
作 者