实验1 Windows汇编语言开发环境 1
1.1 汇编程序结构 1
1.2 Visual C/C++环境 4
1.3 字符串输入与输出 10
1.4 常用Windows API调用 13
1.5 读取CPU标识 13
1.6 WinDbg调试工具 14
1.7 实验题:用MessageBox函数显示CPU信息 16
实验2 分支循环程序设计 17
2.1 冒泡法排序 17
2.2 折半查找 18
2.3 插入数组元素 21
2.4 删除数组元素 23
2.5 实验题:两个有序数组的合并实验 24
实验3 字符串/块处理程序设计 26
3.1 搜索字符 26
3.2 内存块复制 29
3.3 字符串插入 34
3.4 实验题:多个字符串的排序 36
实验4 Windows界面编程 37
4.1 简单的窗口程序 37
4.2 对话框及子窗口控件 41
4.3 GDI编程 46
4.4 实验题:鼠标作图程序 52
实验5 子程序设计 54
5.1 子程序的定义和调用 54
5.2 参数传递规则 57
5.3 局部变量 60
5.4 幂的计算 61
5.5 在C程序中直接嵌入汇编 64
5.6 C/C++程序与汇编的混合编程 66
5.7 实验题:快速排序 74
实验6 I/O程序设计 76
6.1 读取实时时钟 76
6.2 直接读取硬盘扇区 80
6.3 双机全双工串行通信 89
6.4 实验题:读取硬盘序列号 98
实验7 程序优化 100
7.1 指令代码的优化 100
7.2 空间优化处理 107
7.3 MMX指令 109
7.4 SSE指令 114
7.5 实验题:图像像素反转优化 116
实验8 缓冲区溢出攻击实验 118
8.1 缓冲区溢出攻击原理 118
8.2 远程缓冲区溢出攻击 122
8.3 实验题:IIS 5.0溢出漏洞实验 131
实验9 保护模式编程基础 134
9.1 虚拟机开发环境 134
9.2 实模式与保护模式的切换 137
9.3 保护模式下的中断程序设计 142
9.4 实验题:保护模式综合实验 151
实验10 硬盘DMA编程 153
10.1 获取PCI-IDE配置 153
10.2 硬盘DMA传输实验 160
10.3 实验题:保护方式下的硬盘DMA传输实验 167
实验11 多任务和多线程 168
11.1 多任务及其调度 168
11.2 多线程编程 177
11.3 x86-64架构简介 187
11.4 实验题:Windows同步对象实验 189
附录A 190
附录B 191
参考文献 192