本书作为“汇编语言程序设计”课程的实验指导书,将实验环境设定为Windows操作系统以及32位保护模式,解决长期以来汇编语言课程与现实需要之间的脱节问题。采用Visual C/C++,WinDbg等开发调试工具,有效地降低了汇编语言程序的开发和调试难度。
本书强化了保护模式、基本CPU指令,数据类型、I/O操作、堆栈、中断、DMA等汇编语言基本要素,而且设计了多个综合牲实验,例如:数据加密/解密、文件拆分合并、P/V锁、缓冲区溢出等。从汇编语言程序设计的角度支撑了操作系统、信息安全、微机原理等其他课程的内容,有利于各种课程之间的融会贯通。
本书介绍在Windows操作系统及32位保护模式下的汇编语言实验,包括集成开发环境的使用、分支循环、字符串处理、子程序、Windows界面编程、I/O程序设计、代码优化、硬盘DMA编程、保护模式编程、缓冲区溢出、多任务和多线程等11个实验。
书中提供了31个示例程序,在Windows操作系统或虚拟机中运行,以Pentium微机为基础平台,发挥汇编语言与底层硬件联系紧密的特点,包括了读取实时时钟、直接读取硬盘扇区和硬盘序列号、中断程序设计、硬盘DMA传输等实验,体现出汇编语言的强大功能和高效率。除此之外,还包括了代码优化、缓冲区溢出、多任务、线程同步、递归编程、C/C++和汇编混合编程等与底层软件技术相关的实验程序。
本书可作为高等院校计算机专业及电子、电气类相关专业本科生汇编语言程序设计、微型计算机原理与接口技术等课程的实验教材或参考书,也可作为其他自学者或计算机专业技术人员的参考指导书。
实验1 Windows汇编语言开发环境
1.1 汇编程序结构
1.2 Visual C/C++环境
1.3 字符串输入与输出
1.4 常用Windows API调用
1.5 读取CPU标识
1.6 WinDbg调试工具
1.7 实验题:用MessageBox函数显示CPU信息
实验2 分支循环程序设计
2.1 冒泡法排序
2.2 折半查找
2.3 插入数组元素
2.4 删除数组元素
2.5 实验题:两个有序数组的合并实验
实验3 字符串/块处理程序设计
3.1 搜索字符
3.2 内存块复制
3.3 字符串插入
3.4 实验题:多个字符串的排序
实验4 Windows界面编程
4.1 简单的窗口程序
4.2 对话框及子窗口控件
4.3 GDI编程
4.4 实验题:鼠标作图程序
实验5 子程序设计
5.1 子程序的定义和调用
5.2 参数传递规则
5.3 局部变量
5.4 幂的计算
5.5 在C程序中直接嵌入汇编
5.6 C/C++程序与汇编的混合编程
5.7 实验题:快速排序
实验6 I/O程序设计
6.1 读取实时时钟
6.2 直接读取硬盘扇区
6.3 双机全双工串行通信
6.4 实验题:读取硬盘序列号
实验7 程序优化
7.1 指令代码的优化
7.2 空间优化处理
7.3 MMX指令
7.4 SSE指令
7.5 实验题:图像像素反转优化
实验8 缓冲区溢出攻击实验
8.1 缓冲区溢出攻击原理
8.2 远程缓冲区溢出攻击
8.3 实验题:IIS 5.0溢出漏洞实验
实验9 保护模式编程基础
9.1 虚拟机开发环境
9.2 实模式与保护模式的切换
9.3 保护模式下的中断程序设计
9.4 实验题:保护模式综合实验
实验10 硬盘DMA编程
10.1 获取PCI IDE配置
10.2 硬盘DMA传输实验
10.3 实验题:保护方式下的硬盘DMA传输实验
实验11 多任务和多线程
11.1 多任务及其调度
11.2 多线程编程
11.3 x86 64架构简介
11.4 实验题:Windows同步对象实验
附录A
附录B
参考文献