再版前言 1
第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.1 数的补码表示 7
1.3 计算机中数和字符的表示 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 “异或”运算(XOR Exclusiver-0R) 13
习题 14
第2章 80x86计算机组织 15
2.1 80x86微处理器 15
2.2.1 硬件 17
2.2 基于微处理器的计算机系统构成 17
2.2.2 软件 18
2.3 中央处理机 19
2.3.1 中央处理机CPU的组成 19
2.3.2 80x86寄存器组 20
2.4 存储器 24
2.4.1 存储单元的地址和内容 24
2.4.2 实模式存储器寻址 26
2.4.3 保护模式存储器寻址 30
2.5 外部设备 31
习题 33
第3章 80x86的指令系统和寻址方式 35
3.1.1 与数据有关的寻址方式 36
3.1 80x86的寻址方式 36
3.1.2 与转移地址有关的寻址方式 44
3.2 程序占有的空间和执行时间 46
3.3 80x86的指令系统 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.1 汇编程序功能 117
第4章 汇编语言程序格式 117
4.2.1 处理器选择伪操作 118
4.2.2 段定义伪操作 118
4.2 伪操作 118
4.2.3 程序开始和结束伪操作 126
4.2.4 数据定义及存储器分配伪操作 127
4.2.5 表达式赋值伪操作EQU 133
4.2.6 地址计数器与对准伪操作 134
4.2.7 基数控制伪操作 136
4.3 汇编语言程序格式 137
4.3.1 名字项 137
4.3.3 操作数项 138
4.3.2 操作项 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.6 COM文件 153
习题 155
5.1 循环程序设计 160
5.1.1 循环程序的结构形式 160
第5章 循环与分支程序设计 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.1.1 宏定义、宏调用和宏展开 246
7.1 宏汇编 246
第7章 高级汇编语言技术 246
7.1.2 宏定义中的参数 249
7.1.3 LOCAL伪操作 252
7.1.4 在宏定义内使用宏 253
7.1.5 列表伪操作 255
7.1.6 宏库的建立与调用 258
7.1.7 PURGE伪操作 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.1 I/O设备的数据传送方式 282
8.1.1 CPU与外设 282
8.1.2 直接存储器存取(DMA)方式 282
8.2 程序直接控制I/O方式 283
8.2.1 I/O端口 283
8.2.2 I/O指令 284
8.2.3 I/O程序举例 285
8.3 中断传送方式 289
8.3.1 8086的中断分类 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/O 316
9.1.1 字符码与扫描码 317
9.1.2 BIOS键盘中断 318
9.1.3 DOS键盘功能调用 319
9.2 显示器I/O 324
9.2.1 字符属性 324
9.2.2 BIOS显示中断 327
9.2.3 DOS显示功能调用 335
9.3 打印机I/O 336
9.3.1 DOS打印功能 337
9.3.2 打印机的控制字符 338
9.3.3 BIOS打印功能 342
9.4 串行通信口I/O 345
9.4.1 串行通信接口 346
9.4.2 串行口功能调用 348
习题 353
第10章 图形与发声系统的程序设计 355
10.1 显示方式 355
10.1.1 显示分辨率 355
10.1.2 BIOS设置显示方式 356
10.2 视频显示存储器 359
10.2.1 图形存储器映像 359
10.2.2 数据到颜色的转换 361
10.2.3 直接视频显示 363
10.3 EGA/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/54 384
10.4.2 扬声器驱动方式 387
10.4.3 通用发声程序 388
10.4.4 80x86PC的时间延迟 390
10.5 乐曲程序 392
10.5.1 音调与频率和时间的关系 392
10.5.2 演奏乐曲的程序 393
10.5.3 键盘控制发声程序 396
习题 397
11.1.1 磁盘记录信息的地址 400
第11章 磁盘文件存取技术 400
11.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/O 423
11.4.1 BIOS磁盘操作 427
11.4 BIOS磁盘存取功能 427
11.4.2 状态字节 429
11.4.3 BIOS磁盘操作举例 430
习题 433
附录 435
附录1 80x86指令系统一览 435
附录2 伪操作与操作符 454
附录3 中断向量地址一览 469
附录4 DOS系统功能调用(INT 21H) 471
附录5 BIOS功能调用 477
参考文献 482