第零章 预备知识 2
0.1从一个简单的例子开始 2
0.2组合语言的句法规则 5
0.3资料结构与定址模式 7
0.3.1暂存器 8
0.3.2记亿体与段的划分 11
0.3.3指令的执行 13
0.3.4定址模式 14
0.3.5堆叠器 19
0.4旗标 20
0.5处理器指令 22
0.5.1算术运算 23
0.5.2资料移动 27
0.5.3执行流程控制 28
0.5.4输入/输出 33
0.5.5字串处理 34
0.6虚拟运算码 37
0.6.1资料储存方式 38
0.6.2 SEGMENT,GROUP,以及ASSUME虚拟运算码 39
0.6.3程序 41
0.7执行编译器,组译程式,及连结程式 42
0.7.1编译与组译 42
0.7.2连结 43
0.7.3执行编译程式、组译程式、及连结程式 45
0.8总结 49
第一章 简介 53
1.1增强(supercharging) 54
1.2这本书为读者带来什么 56
1.3本书的架构 57
第二章 增强的观念 61
2.1 IBM PC概观 62
2.2增强的方式 64
2.2.1使处理机执行达到最佳速度 64
2.2.2使磁碟输入/输出达到最佳效果 66
2.2.3避开MS-DOS 67
2.2.4避开ROM-BIOS 67
2.2.5存取隐藏的功能 68
2.3增强功能的利与弊 69
2.3.1模组化程式设计 73
2.3.2将功能与实作分开来 74
2.3.3做较小的模组 75
2.3.4尽量减少模组间的联系 76
2.3.5避免隐含的模组间联系 78
2.4 Supercharging的测测定法 78
2.5结论 81
第一部分 使执行速度最佳化 84
第三章 如何由C程式呼叫组合语言常式 84
3.1概略的介绍呼叫组合语言 85
3.2分段和群 88
3.3编译程式记亿体模式 93
3.4 C与组合语言的界面 96
3.5编译程式分段和群的使用方法 98
3.6呼叫常规 102
3.7捷径 109
3.8结论 111
第四章处理机时间最佳化R AMSORT 119
4.1 RAMSORT 120
4.2 RAMSORT C程式 122
4.3转换C语言成为组合语言 127
4.4测量绩效 128
4.5错误的最佳化方法 129
4.6正确的最佳化方法 132
4.7最后的妙计 133
4.8结论 133
第五章最佳化Titatoe(井字游戏)程式 155
5.1井字游戏 156
5.2搜寻策略 158
5.3 Titatoe程式 164
5.4使Titatoe程式最佳化 167
5.5结论 170
第六章 输入/输出速度最佳化:secret程式 205
6.1编密(encryption) 206
6.2编密程式—Secret程式 211
6.3作业系统与C档案输入/输出 212
6.4使程式最佳化 218
6.5 CPU最佳化工作 221
6.6其他的磁碟机 221
6.7结论 222
第二部分 直接存取ROM BIOS 235
第七章 如何呼叫ROM BIOS 235
7.1中断 236
7.2中断操作 240
7.3 ROM BIOS 243
7.4呼叫ROM BIOS 249
7.5 int86函式 258
7.6结论 260
第八章 利用ANS I.SYS与BIOS设计程式 291
8.1字元输入/输出(I/O) 292
8.2键盘字元输入 295
8.3 Display程式 296
8.4显示文字 302
8.4.1 VANILLA 302
8.4.2 ANSI 302
8.4.3 ROM BIOS 303
8.4.4直接存取 304
8.5组合语言常式 304
8.6绩效 305
8.7结论 307
第九章 显示器和直接的键盘I/O 325
9.1显示器彩色与属性 326
9.2 ROM BIOS键盘函式 329
9.3属性程式 332
9.4结论 333
第十章CGA & EGA之ROM BIOS图形 345
10.1非整数次元 346
10.2 ROM BIOS显示常式 349
10.3 Fractal程式 356
10.4执行Fractal程式 362
10.5结论 365
第十一章 串列埠—键盘/显示器I/O 381
11.1串列式输入/输出(I/O) 383
11.2 Termemu程式 389
11.3串列埠B IOS函式 391
11.4 Termpemup程式 395
11.5列印机埠BIOS程式 397
11.6结论 398
第三部分直接存取硬体 417
第十二章 如何直接取用硬体功能 417
12.1取用硬体的基本概念 418
12.2 IBM硬体总览 420
12.3取用程式位址空间以外的记亿体空间 430
12.4使用IN与OUT指令 440
12.5利用中断 442
12.6总结 447
第十三章直接取用萤幕I/O功能 449
13.1显示记忆体 450
13.2从低位址记亿区中取得显示资讯 455
13.3新的ScrPuts函式 456
13.4修订版ShowFile程式 458
13.5总结 459
第十四章 快速动画设计—Ping游戏 465
14.1显示记亿体 467
14.2 BLOCK函式 469
14.3透视BLOCK函式 475
14.4 Ping程式 483
14.5总结 484
第十五章 中断驱动串列输出入程式 515
15.1串列埠输出入基本原理 517
15.2串列埠的硬体中断 522
15.3循环式缓冲器 523
15.4中断驱动串列界面 526
15.5 COM-II程式 529
15.6总结 529
第十六章 直接存取音频产生I/O界面 553
16.1音效产生硬体原理 554
16.2 Sound程式 559
16.3处理器的执行速度 561
16.4直接控制扬声器 564
16.5总结 565
第十七章Super charging测试工具:IP柱状图 581
17.1 IP柱状图 582
17.2计时器中断 587
17.3 IP柱状图模组 589
17.4使用IP柱状图模组 592
17.5连结程式位址对映表 594
17.6分析RamSort程式 596
17.7总结 598
第四部分 附录 625
附录A ROM BIOS中断及暂存器用法 626
附录B键盘码 635
附录C 8088/8086指令组 641
附录D名词解释 665