目录 1
编者的话 1
绪论 1
第一章Intel 8086体系结构 6
§1-1微型计算机系统 6
§1-2 8086 CPU 9
1-2-1 8086 CPU 9
1-2-2寄存器组 11
1-2-3 CPU执行指令的过程 12
1-2-4 总线接口单元与执行单元 15
1-2-5 8086系统总线结构 16
§1-3段寄存器 17
1-4-1控制标志 19
§1-4 标志寄存器FLAG 19
1-4-2状态标志 20
§1-5堆栈 22
*§1-6 80286/386 24
1-6-1 80286 24
1-6-2 80386 26
1-6-3 80386的寄存器组 27
*§1-7 80486/Pentium 29
1-7-1 80486 29
1-7-2 Pentium 29
习题一 30
实验题 31
第二章指令系统 32
§2-1 寻址方式 32
2-1-1 寻址方式 32
*§2-2 80386寻址方式 38
2-1-2 寻址方式的比较 38
§2-3 指令系统 40
2-3-1 数传指令 40
2-3-2算术运算指令 44
2-3-3 辑运算指令 45
2-3-4移位指令 47
2-3-5 数据串操作指令 49
2-3-6转移指令 54
2-3-7 处理器控制指令 55
§2-4 80286的指令扩充 56
§2-5指令代码格式 56
习题二 59
实验题二 61
第三章汇编语言 62
§3-1 汇编语言语句 62
3-1-1 汇编语言语句 64
3-1-2参数 65
3-1-3标识符(Identifier) 67
3-1-4运算和操作符 67
§3-2 常量 68
3-2-1 常量的定义 68
3-2-2串常量(正文宏) 69
§3-3 变量 70
3-3-1 变量的定义 70
3-3-2 变量的属性 72
3-3-3 变量的使用 74
§3-4 标号 76
3-4-1 标号的类型与属性 76
3-4-2 标号的定义 77
§3-5 TYPE,SIZE与LENGTH 79
§3-6 类型的改变与指定 79
3-6-1 PTR运算符 80
3-6-2 THIS运算符 81
3-6-3 LABEL运算符 81
§3-7 汇编语言程序结构 82
3-7-1 模块(Module)结构 82
3-7-2段(Segment) 84
3-7-3过程(Procedure) 91
3-7-4群(Group) 92
§3-8简化的段定义 93
§3-9 结构与记录 96
3-9-1 结构(Structure) 96
3-9-2记录 98
§3-10条件汇编 100
§3-11 宏指令语句 101
3-11-1 宏操作伪指令 102
3-11-2 重复块定义伪指令 104
3-11-3 符号处理与LOCAL伪指令 105
3-11-4嵌套宏定义 106
3-11-5嵌套宏调用 107
3-11-6重复宏定义 109
3-11-7 宏定义库的使用——INCLUDE伪指令 109
§3-12 汇编过程与汇编程序 111
§3-13连接程序 119
§3-14 汇编语言程序的运行环境 121
3-14-1 操作系统 121
3-14-2 DOS的内部和外部命令 122
3-14-3 中断与系统功能调用 123
*§3-15 EXE,COM文件结构与程序段前缀PSP 126
3-15-1程序段前缀PSP 126
3-15-2 EXE文件结构 128
3-15-3 COM文件 130
习题三 132
3-15-4 内存控制块与环境块 132
实验题三 134
第四章程序设计方法 137
§4-1 顺序结构 137
4-1-1简单数制变换 137
4-1-2简单数码转换 139
4-1-3 重复宏定义和嵌套段定义在数码转换中的 145
应用 145
§4-2 分支结构 146
4-2-1 无条件转移指令 149
4-2-2条件转移指令 152
4-2-3分支程序设计 154
4-2-4多分支程序设计 155
4-3-1 循环指令LOOP 158
§4-3 循环结构 158
4-3-2 多重循环 161
§4-4 子程序 170
4-4-1 子程序结构 170
4-4-2 调用指令CALL 171
4-4-3 返回指令RET 172
4-4-4 子程序库 172
4-4-5参数的传递 172
4-4-6 嵌套 174
4-4-7 递归 178
§4-5 算术运算 182
4-5-1 十进制运算 182
4-5-2乘法运算 186
4-5-3 除法运算 190
4-5-4符号扩展指令 192
§4-6 浮点数运算 193
§4-7 可浮动程序与可再入程序 197
4-7-1 可浮动程序 197
4-7-2 可再入程序 199
*§4-8 汇编语言子程序与高级语言的接口 200
4-8-1 模块之间的连接方式 201
4-8-2参数传递方法 202
*§4-9 386实地址模式程序设计 204
4-9-1 386的实地址模式 204
4-9-2段字设置 205
4-9-3 386的指令扩充 206
4-9-4程序设计实例 208
习题四 210
实验题四 212
§5-1 中断与异常 213
第五章 中断与DOS调用的程序设计 213
5-1-1 8086/286的中断方式 214
5-1-2 中断类型与中断向量 216
5-1-3 中断响应 218
5-1-4 中断返回 219
5-1-5 中断优先权 221
*5-1-6 异常 221
5-1-7 可编程中断控制器8259A 222
*5-1-8 386的中断与异常 225
§5-2 DOS中断调用 226
5-2-1 DOS操作系统 226
5-2-2中断调用 228
5-2-3 中断调用的使用编程 230
§5-3 系统功能调用 233
5-3-1 系统功能调用 233
5-3-2使用举例 234
5-3-3 常驻内存程序的设计 238
5-3-4在程序中嵌套DOS命令行操作 239
§5-4 显示调用的程序设计 244
5-4-1 EGA方式 245
5-4-2 VGA/TVGA方式 246
5-4-3 10H显示中断调用 247
*5-4-4 VGA/TVGA的直接VRAM访问 261
§5-5 磁盘文件管理 270
*5-5-1 磁盘参数 271
*5-5-2 磁盘分区 271
*5-5-3 13H磁盘中断调用 275
*5-5-4 25H/26H绝对磁盘读写中断调用 277
*5-5-5 系统功能调用——传统的磁盘文件管理 278
5-5-6采用文件标记的管理 281
§5-6 通信应用编程 286
5-6-1 信号处理 287
5-6-2 信号接收缓冲区与队 289
5-6-3 实时多任务与链表 292
5-6-4信号编译码 296
习题五 299
实验题五 300
第六章输入输出程序设计 302
§6-1 I/O指令与并行通信 302
6-1-1 I/O指令 303
6-1-2 以查询方式进行数据并行输入/输出 304
6-1-3微机并行接口(打印口) 307
6-1-4 打印机I/O中断调用(17H) 309
*6-1-5打印控制命令 310
§6-2 串行通信与8250可编程异步通信接口 312
6-2-1 串行通信 312
6-2-2 RS 232C接口标准 313
6-2-3 8250可编程串行异步通信接口(UART) 315
6-2-4 串行通信程序设计 320
6-2-5 串行输入输出中断调用与功能调用 329
§6-3 可编程定时/计数器8253/8254与音乐编程 332
*6-3-1 8253的编程 333
6-3-2 PC微机扬声器驱动方法 336
6-3-3 音调控制 337
6-3-4 简单乐曲的演奏 339
习题六 341
实验题六 341
*第七章保护模式下的程序设计 344
§7-1 286保护模式下的寻址实现 344
7-1-1 286 CPU系统结构 344
7-1-2 寻址过程 345
7-1-3段选择符与段描述符 346
7-1-4 门描述符 351
§7-2地址管理与虚拟存储的实现 353
§7-3 特权级的保护 354
7-3-1特权级(Privilege Level) 355
7-3-2堆栈与数据段特权级保护规则 355
7-3-3代码段特权级保护规则 356
7-3-4 一致性代码段和非一致性代码段 358
7-3-5 代码段特权级检查细则 360
7-3-6 引起CPL变化的中断/异常与调用 362
7-3-7其他保护性检查 364
7-3-8 I/O保护 364
§7-4 286/386的实地址模式 365
7-4-1 实地址模式 365
7-4-3 由保护模式返回实模式的方法 366
7-4-2与8086的区别 366
§7-5 多任务与任务转换 368
7-5-1 多任务 368
7-5-2任务状态段TSS 369
7-5-3 任务门 371
7-5-4 任务转换 371
§7-6 保护模式下的中断与异常 373
7-6-1 实模式下的中断与异常 373
7-6-2保护模式下的中断与异常 373
§7-7 保护模式下的指令扩充 374
§7-8 286保护模式程序设计举例 375
7-8-1 一般性问题 375
7-8-2程序实例 379
7-8-3 访问扩充内存 388
7-9-1 386的保护模式 390
§7-9 386保护模式程序设计 390
7-9-2 寻址16位段的设计举例 392
7-9-3 寻址32位段的设计举例 393
习题七 398
实验题七 399
参考文献 400
附录一8086汇编语言上机操作与常用工具软件 402
一.上机操作过程 402
二.汇编程序MASM 403
三.库程序LIB 404
四.连接程序LINK 404
五.动态调试程序DEBUG 405
六.Code View调试程序 408
附录二DOS系统功能调用表 411
附录三8086/286指令表 418
附录四ASCII字符表 427