《Windows环境下32位汇编语言程序设计(典藏版) 》
基本信息
作者: 罗云彬
出版社:电子工业出版社
ISBN:9787121207594
上架时间:2013-7-8
出版日期:2013 年7月
开本:16开
页码:756
版次:1-1
所属分类:计算机
更多关于 》》》《Windows环境下32位汇编语言程序设计(典藏版) 》
内容简介
计算机书籍
windows环境下32位汇编语言是一种全新的编程语言。它使用与c++语言相同的api接口,不仅可以开发出大型的软件,而且是了解操作系统运行细节的最佳方式。
《windows环境下32位汇编语言程序设计(典藏版)》从编写应用程序的角度,从“hello,world!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入windows环境下32位汇编语言编程的方方面面。
作者罗云彬拥有10余年汇编语言编程经验,本书是作者多年来编程工作的总结,适合于欲通过windows环境下32汇编语言编写windows程序的读者。
目录
《windows环境下32位汇编语言程序设计(典藏版)》
基础篇
第1章 背景知识1
1.1 win32的软硬件平台1
1.1.1 80x86系列处理器简史1
1.1.2 windows的历史3
1.1.3 win32平台的背后——wintel联盟5
1.2 windows的特色6
1.3 必须了解的基础知识7
1.3.1 80x86处理器的工作模式7
1.3.2 windows的内存管理9
1.3.3 windows的特权保护17
第2章 准备编程环境21
2.1 win32可执行文件的开发过程21
2.2 编译器和链接器23
2.2.1 masm系列23
2.2.2 tasm系列27
2.2.3 其他编译器28
2.2.4 masm,tasm还是nasm29
2.2.5 我们的选择——masm32 sdk软件包30
.2.3 创建资源32
2.3.1 资源编译器的使用32
2.3.2 所见即所得的资源编辑器32
2.4 make工具的用法34
2.4.1 make工具是什么34
2.4.2 nmake的用法35
2.4.3 描述文件的语法36
2.5 获取资料40
2.5.1 windows资料的来源40
2.5.2 intel处理器资料42
2.6 构建编程环境42
2.6.1 ide还是命令行43
2.6.2 本书推荐的工作环境43
2.6.3 尝试编译第一个程序45
第3章 使用masm47
3.1 win32汇编源程序的结构47
3.1.1 模式定义49
3.1.2 段的定义51
3.1.3 程序结束和程序入口54
3.1.4 注释和换行54
3.2 调用api55
3.2.1 api是什么55
3.2.2 调用api56
3.2.3 api参数中的等值定义61
3.3 标号、变量和数据结构63
3.3.1 标号63
3.3.2 全局变量65
3.3.3 局部变量66
3.3.4 数据结构69
3.3.5 变量的使用71
3.4 使用子程序75
3.4.1 子程序的定义76
3.4.2 参数传递和堆栈平衡77
3.5 高级语法79
3.5.1 条件测试语句80
3.5.2 分支语句81
3.5.3 循环语句83
3.6 代码风格85
3.6.1 变量和函数的命名86
3.6.2 代码的书写格式88
3.6.3 代码的组织89
初级篇
第4章 第一个窗口程序90
4.1 开始了解窗口90
4.1.1 窗口是什么90
4.1.2 窗口界面91
4.1.3 窗口程序是怎么工作的92
4.2 分析窗口程序99
4.2.1 模块和句柄99
4.2.2 创建窗口101
4.2.3 消息循环108
4.2.4 窗口过程110
4.3 窗口间的通信115
4.3.1 窗口间的消息互发115
4.3.2 在窗口间传递数据119
4.3.3 sendmessage和postmessage函数的区别119
第5章 使用资源121
5.1 菜单和加速键121
5.1.1 菜单和加速键的组成121
5.1.2 菜单和加速键的资源定义122
5.1.3 使用菜单和加速键128
5.2 图标和光标140
5.2.1 图标和光标的资源定义141
5.2.2 使用图标和光标141
5.3 位图145
5.3.1 位图简介145
5.3.2 在资源中定义位图146
5.4 对话框147
5.4.1 对话框简介147
5.4.2 对话框的资源定义149
5.4.3 使用对话框151
5.4.4 在对话框中使用子窗口控件154
5.5 字符串资源177
5.6 版本信息资源178
5.6.1 版本信息资源的定义179
5.6.2 在程序中检测版本信息181
5.7 二进制资源和自定义资源183
5.7.1 使用二进制资源183
5.7.2 使用自定义资源184
第6章 定时器和windows时间185
6.1 定时器185
6.1.1 定时器简介185
6.1.2 定时器的使用方法186
6.2 windows时间190
6.2.1 windows时间的获取和设置190
6.2.2 计算时间间隔191
第7章 图形操作193
7.1 gdi原理193
7.1.1 gdi程序的结构194
7.1.2 设备环境197
7.1.3 色彩和坐标203
7.2 绘制图形205
7.2.1 画笔和画刷212
7.2.2 绘制像素点216
7.2.3 绘制图形216
7.2.4 绘图模式221
7.3 创建和使用位图222
7.3.1 一个使用位图的时钟例子222
7.3.2 创建和使用位图232
7.3.3 使用设备无关位图233
7.4 块传送操作235
7.4.1 块传送方式236
7.4.2 块传送函数237
7.5 区域和路径241
7.5.1 使用区域241
7.5.2 使用路径243
界面篇
第8章 通用对话框245
8.1 通用对话框简介245
8.2 使用通用对话框252
8.2.1 “打开”文件和“保存”文件对话框252
8.2.2 字体选择对话框254
8.2.3 “颜色”选择对话框256
8.2.4 “查找”和“替换”文本对话框257
8.2.5 “页面设置”对话框260
8.2.6 “浏览目录”对话框261
第9章 通用控件262
9.1 通用控件简介262
9.1.1 通用控件的分类262
9.1.2 使用通用控件263
9.2 使用状态栏268
9.2.1 创建状态栏273
9.2.2 状态栏的控制消息274
9.2.3 在状态栏上显示菜单提示信息276
9.3 使用工具栏277
9.3.1 创建工具栏284
9.3.2 工具栏的控制消息287
9.3.3 工具栏的通知消息290
9.4 使用richedit控件294
9.4.1 创建richedit控件305
9.4.2 richedit控件的控制消息307
9.4.3 richedit控件的通知消息317
9.5 窗口的子类化318
9.5.1 什么是窗口的子类化318
9.5.2 窗口子类化的实现319
9.6 控件的超类化325
9.6.1 什么是控件的超类化325
9.6.2 控件超类化的实现325
系统篇
第10章 内存管理和文件操作330
10.1 内存管理330
10.1.1 内存管理基础330
10.1.2 内存的当前状态331
10.1.3 标准内存管理函数333
10.1.4 堆管理函数338
10.1.5 虚拟内存管理函数343
10.1.6 其他内存管理函数347
10.2 文件操作348
10.2.1 windows的文件i/o348
10.2.2 创建和读写文件350
10.2.3 查找文件360
10.2.4 文件属性368
10.2.5 其他文件操作369
10.3 驱动器和目录371
10.3.1 逻辑驱动器操作372
10.3.2 目录操作375
10.4 内存映射文件377
10.4.1 内存映射文件简介377
10.4.2 使用内存映射文件379
第11章 动态链接库和钩子388
11.1 动态链接库388
11.1.1 动态链接库的概念388
11.1.2 编写动态链接库389
11.1.3 使用动态链接库395
11.1.4 动态链接库中的数据共享404
11.1.5 在vc++中使用动态链接库405
11.2 windows钩子408
11.2.1 什么是windows钩子408
11.2.2 远程钩子的安装和使用410
11.2.3 日志记录钩子418
第12章 多线程422
12.1 进程和线程422
12.2 多线程编程423
12.2.1 一个单线程的“问题程序”423
12.2.2 多线程的解决方法427
12.2.3 与线程有关的函数431
12.3 使用事件对象控制线程435
12.3.1 事件436
12.3.2 等待事件437
12.3.3 进一步改进计数程序439
12.4 线程间的同步441
12.4.1 产生同步问题的原因441
12.4.2 各种用于线程间同步的对象446
第13章 过程控制454
13.1 环境变量和命令行参数454
13.1.1 环境变量454
13.1.2 命令行参数457
13.2 执行可执行文件462
13.2.1 方法一:shell调用462
13.2.2 方法二:创建进程464
13.3 进程调试473
13.3.1 获取运行中的进程句柄473
13.3.2 读写进程的地址空间480
13.3.3 调试api的使用484
13.4 进程的隐藏494
13.4.1 在windows 9x中隐藏进程494
13.4.2 windows nt中的远程线程495
第14章 异常处理508
14.1 异常处理的用途508
14.2 使用筛选器处理异常509
14.2.1 注册回调函数509
14.2.2 异常处理回调函数511
14.3 使用seh处理异常515
14.3.1 注册回调函数516
14.3.2 异常处理回调函数518
14.3.3 seh链和异常的传递521
14.3.4 展开操作(unwinding)523
应用篇
第15章 注册表和ini文件527
15.1 注册表和ini文件简介527
15.2 ini文件的操作528
15.2.1 ini文件的结构528
15.2.2 管理键值529
15.2.3 管理小节537
15.2.4 使用不同的ini文件538
15.3 对注册表的操作539
15.3.1 注册表的结构539
15.3.2 管理子键541
15.3.3 管理键值552
15.3.4 子键和键值的枚举553
15.3.5 注册表应用举例557
第16章 winsock接口和网络编程560
16.1 windows socket接口简介561
16.2 windows socket接口的使用564
16.2.1 ip地址的转换564
16.2.2 套接字568
16.2.3 网络应用程序的一般工作流程571
16.2.4 监听、发起连接和接收连接574
16.2.5 数据的收发577
16.2.6 一个最简单的tcp服务端程序580
16.3 tcp应用程序的设计586
16.3.1 通信协议和工作线程的设计587
16.3.2 tcp聊天室例子——服务器端596
16.3.3 tcp聊天室例子——客户端604
16.3.4 以非阻塞方式工作的tcp聊天室客户端611
16.3.5 其他常用函数622
第17章 pe文件626
17.1 pe文件的结构626
17.1.1 概论626
17.1.2 dos文件头和dos块627
17.1.3 pe文件头(nt文件头)629
17.1.4 节表和节634
17.2 导入表649
17.2.1 导入表简介649
17.2.2 导入表的结构651
17.2.3 查看pe文件导入表举例654
17.3 导出表657
17.3.1 导出表的结构657
17.3.2 查看pe文件导出表举例660
17.4 资源663
17.4.1 资源简介663
17.4.2 资源的组织方式664
17.4.3 查看pe文件中的资源列表举例668
17.5 重定位表672
17.5.1 重定位表的结构673
17.5.2 查看pe文件的重定位表举例675
17.6 应用实例677
17.6.1 动态获取api入口地址677
17.6.2 在pe文件上添加执行代码684
第18章 odbc数据库编程694
18.1 基础知识694
18.1.1 数据库接口的发展历史694
18.1.2 sql语言697
18.1.3 odbc程序的流程699
18.2 连接数据库700
18.2.1 连接和断开数据库700
18.2.2 连接字符串706
18.3 数据的管理709
18.3.1 执行sql语句709
18.3.2 执行结果的处理714
18.3.3 获取结果集中的数据716
18.3.4 事务处理721
18.4 数据库操作的例子723
18.4.1 结果集处理模块724
18.4.2 例子的源代码729
参考文献740
附录a、b、c(见本书配套光盘)