IBM PC汇编语言程序设计（第二版）

2014年清华大学出版社出版的图书
《IBM PC汇编语言程序设计（第二版）》是2014年清华大学出版社出版的图书，作者是沈美明、温冬婵。
编辑推荐
《普通高等教育“九五”国家教委重点教材·清华大学计算机系列教材：IBM PC汇编语言程序设计（第2版）》已伴随着计算机科学与技术的发展茁壮成长了三十余年，获得了中华人民共和国教育部科技进步奖、普通高等学校优秀教材全国特等奖、全国优秀畅销书金奖等三十多项部级以上奖励，被近千所高校选作教材，教学效果非常好。本套教材经过多次修订改版和增加新品种、新内容、新技术，基本涵盖了本科生和硕士研究生的主要课程。本套教材的作者全部是清华大学计算机系的教师，教材的内容、语言特点、课时安排体现了他们治学严谨的特点，概念表述严谨，逻辑推理严密，语言精练。同时，本套教材体系完整、结构严谨，理论结合实际，注重素质培养。
《普通高等教育“九五”国家教委重点教材·清华大学计算机系列教材：IBM PC汇编语言程序设计（第2版）》特色：
概念正确，思路清晰，内容组织上别具匠心。如第5章在介绍循环与分支程序设计的同时，集中列举了线性表的程序；第6章在介绍子程序设计的同时，着重讨论了不同记数制间的转换用汇编语言实现的方法和程序。两条主线清晰分明，使读者易于融会贯通。
在教材中注意体现了“机器”与“程序”相互结合这一思想，使学生对“计算机”的认识更加深入。
实例丰富，实用性强。书中提供了大量可正确运行的实例，便于读者把所学的知识快速用于实际中，提高了对枯燥的汇编语言的学习兴趣。
由浅入深，结构合理。便于教师组织教学，便于对不同的学时数不同的对象取禽章节。
内容简介
《普通高等教育“九五”国家教委重点教材·清华大学计算机系列教材：IBM PC汇编语言程序设计（第2版）》主要阐述80x86汇编语言程序设计方法和技术。全书共分四部分：第1章和第2章为基础知识部分；第3章和第4章为编程工具部分，主要内容为80x86的指令系统与寻址方式，以及包括伪操作在内的汇编语言程序格式；第5章～第9章说明编程方法，内容包括循环、分支、子程序等基本程序结构，程序设计的基本方法和技术，多模块连接技术，宏汇编技术，以中断为主的输入输出程序设计方法，以及BIOS和DOS系统功能调用；第10章和第11章为实际应用部分，说明图形显示、发声和磁盘文件存取技术。全书提供了大量程序实例，每章后均附有习题。
本书是在1991年第1版的基础上，融会了10年来教学与科研的新成果改编成的。其第1版曾先后获得过原电子工业部工科电子类专业优秀教材一等奖、教育部科技进步一等奖、国家科技进步三等奖等；受到广大读者的欢迎，累计发行达130多万册。
本书适用于高等院校以及大、中专院校作为“汇编语言程序设计”课程的教材。本书也适于初学者使用，只要具有一种高级语言程序设计基础的读者，都可通过学习本书掌握汇编语言程序设计技术。
作者简介
沈美明，1959年毕业于清华大学自动控制系计算机专业，留校任教至今。现为清华大学计算机系教授、博士生导师。多年来一直从事“汇编语言程序设计”课程的教学工作以及并行与分布计算机系统、并行程序开发环境等方面的科研工作。先后主持多项国家“863”计划、国防科技预研和自然科学基金项目等。近年来和合作者一起在国内外刊物和学术会议上发表论文80余篇。曾获国家科技进步三等奖，并多次获部委级科技进步奖。
温冬婵，1970年毕业于清华大学自动控制系，现为清华大学计算机系副主任、教授。多年来一直承担“汇编语言程序设计”课程的教学工作。科研方向为并行与分布计算机系统、并行编译技术等。参加了多项国家“863”计划、国防预研和自然科学基金项目等，曾多次获得国家部委科技进步奖，所编写的教材获得部委一等奖和国家科技进步三等奖。
近年来，与他人合著学术专著一部，编著和翻译著作9本，在国内外刊物和学术会议上发表论文50余篇。
目录
再版前言Ⅰ第1章基础知识1
1.1进位记数制与不同基数的数之间的转换1
1.1.1二进制数1
1.1.2二进制数和十进制数之间的转换2
1.1.3十六进制数及其与二进制、十进制数之间的转换4
1.2二进制数和十六进制数运算6
1.2.1二进制数运算6
1.2.2十六进制数运算6
1.3计算机中数和字符的表示7
1.3.1数的补码表示7
1.3.2补码的加法和减法9
1.3.3无符号整数11
1.3.4字符表示法11
1.4几种基本的逻辑运算12
1.4.1“与”运算（AND）12
1.4.2“或”运算（OR）13
1.4.3“非”运算（NOT）13
1.4.4“异或”运算（XORExclusive\|OR）13
习题14第2章80x86计算机组织15
2.180x86微处理器15
2.2基于微处理器的计算机系统构成17
2.2.1硬件17
2.2.2软件18
2.3中央处理机19
2.3.1中央处理机CPU的组成19
2.3.280x86寄存器组20
2.4存储器24
2.4.1存储单元的地址和内容24
2.4.2实模式存储器寻址26
2.4.3保护模式存储器寻址30
2.5外部设备31
习题33第3章80x86的指令系统和寻址方式35
3.180x86的寻址方式36
3.1.1与数据有关的寻址方式36
3.1.2与转移地址有关的寻址方式44
3.2程序占有的空间和执行时间46
3.380x86的指令系统47
3.3.1数据传送指令47
3.3.2算术指令58
3.3.3逻辑指令68
3.3.4串处理指令75
3.3.5控制转移指令85
3.3.6处理机控制与杂项操作指令104
习题107第4章汇编语言程序格式117
4.1汇编程序功能117
4.2伪操作118
4.2.1处理器选择伪操作118
4.2.2段定义伪操作118
4.2.3程序开始和结束伪操作126
4.2.4数据定义及存储器分配伪操作127
4.2.5表达式赋值伪操作EQU133
4.2.6地址计数器与对准伪操作134
4.2.7基数控制伪操作136
4.3汇编语言程序格式137
4.3.1名字项137
4.3.2操作项138
4.3.3操作数项138
4.3.4注释项144
4.4汇编语言程序的上机过程146
4.4.1建立汇编语言的工作环境146
4.4.2建立ASM文件146
4.4.3用MASM程序产生OBJ文件147
4.4.4用LINK程序产生EXE文件152
4.4.5程序的执行153
4.4.6COM文件153
习题155第5章循环与分支程序设计160
5.1循环程序设计160
5.1.1循环程序的结构形式160
5.1.2循环程序设计方法161
5.1.3多重循环程序设计172
5.2分支程序设计176
5.2.1分支程序的结构形式176
5.2.2分支程序设计方法176
5.2.3跳跃表法180
5.3如何在实模式下发挥80386及其后继机型的优势183
5.3.1充分利用高档机的32位字长特性184
5.3.2通用寄存器可作为指针寄存器187
5.3.3与比例因子有关的寻址方式188
5.3.4各种机型提供的新指令191
习题193
第6章子程序结构196
6.1子程序的设计方法196
6.1.1过程定义伪操作196
6.1.2子程序的调用和返回198
6.1.3保存与恢复寄存器198
6.1.4子程序的参数传送199
6.1.5增强功能的过程定义伪操作217
6.2子程序的嵌套224
6.3子程序举例225
习题240第7章高级汇编语言技术246
7.1宏汇编246
7.1.1宏定义、宏调用和宏展开246
7.1.2宏定义中的参数249
7.1.3LOCAL伪操作252
7.1.4在宏定义内使用宏253
7.1.5列表伪操作255
7.1.6宏库的建立与调用258
7.1.7PURGE伪操作261
7.2重复汇编261
7.2.1重复伪操作262
7.2.2不定重复伪操作264
7.3条件汇编265
7.3.1条件伪操作IF的使用举例266
7.3.2条件伪操作IF1的使用举例268
7.3.3条件伪操作IFNDEF的使用举例270
7.3.4条件伪操作IFB的使用举例274
7.3.5条件伪操作IFIDN的使用举例276
习题278第8章输入输出程序设计282
8.1I/O设备的数据传送方式282
8.1.1CPU与外设282
8.1.2直接存储器存取（DMA）方式282
8.2程序直接控制I/O方式283
8.2.1I/O端口283
8.2.2I/O指令284
8.2.3I/O程序举例285
8.3中断传送方式289
8.3.18086的中断分类290
8.3.2中断向量表293
8.3.3中断过程296
8.3.4中断优先级和中断嵌套297
8.3.5中断处理程序299
习题313第9章BIOS和DOS中断315
9.1键盘I/O316
9.1.1字符码与扫描码317
9.1.2BIOS键盘中断318
9.1.3DOS键盘功能调用319
9.2显示器I/O324
9.2.1字符属性324
9.2.2BIOS显示中断327
9.2.3DOS显示功能调用335
9.3打印机I/O336
9.3.1DOS打印功能337
9.3.2打印机的控制字符338
9.3.3BIOS打印功能342
9.4串行通信口I/O345
9.4.1串行通信接口346
9.4.2串行口功能调用348
习题353第10章图形与发声系统的程序设计355
10.1显示方式355
10.1.1显示分辨率355
10.1.2BIOS设置显示方式356
10.2视频显示存储器359
10.2.1图形存储器映像359
10.2.2数据到颜色的转换361
10.2.3直接视频显示363
10.3EGA/VGA图形程序设计367
10.3.1读写像素367
10.3.2图形方式下的文本显示373
10.3.3彩色绘图程序376
10.3.4动画显示技术381
10.4通用发声程序383
10.4.1可编程时间间隔定时器8253/54384
10.4.2扬声器驱动方式387
10.4.3通用发声程序388
10.4.480x86PC的时间延迟390
10.5乐曲程序392
10.5.1音调与频率和时间的关系392
10.5.2演奏乐曲的程序393
10.5.3键盘控制发声程序396
习题397第11章磁盘文件存取技术400
11.1磁盘的记录方式400
11.1.1磁盘记录信息的地址400
11.1.2磁盘系统区和数据区402
11.1.3磁盘目录及文件分配表402
11.2文件代号式磁盘存取404
11.2.1路径名和ASCIZ串405
11.2.2文件代号和错误返回代码406
11.2.3文件属性407
11.2.4写磁盘文件408
11.2.5读磁盘文件413
11.2.6移动读写指针417
11.3字符设备的文件代号式I/O423
11.4BIOS磁盘存取功能427
11.4.1BIOS磁盘操作427
11.4.2状态字节429
11.4.3BIOS磁盘操作举例430
习题433附录435
附录180x86指令系统一览435
附录2伪操作与操作符454
附录3中断向量地址一览469
附录4DOS系统功能调用（INT21H）471
附录5BIOS功能调用477参考文献482