Windows环境下32位汇编语言程序设计(典藏版)

《Windows环境下32位汇编语言程序设计(典藏版) 》
基本信息
作者: 罗云彬
出版社:电子工业出版社
ISBN:9787121207594
上架时间:2013-7-8
出版日期:2013 年7月
开本:16开
页码:756
版次:1-1
所属分类:计算机
内容简介
计算机书籍
  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(见本书配套光盘)
图书信息来源: 互动出版网

 

××××××××××××××××××××××××××× × 《Windows环境32位汇编语言程序设计》 × × 附书代码说明 × ××××××××××××××××××××××××××× 1. 编译器和链接器 本附书代码全部采用 MASM 格式编写,推荐使用 MASM32 软 件包作为编译环境,MASM32 软件包可以在以下地址下载: MASM32官方站点: http://www.masm32.com 安装及开发的操作系统建议采用32位Windows 7,在64位操作系统 上安装 MASM32 软件包,安装生成的Lib文件可能不兼容。 安装完成以后请将本光盘根目录下的环境设置批处理文件Var.bat 拷贝到 Masm32\bin 目录下,并根据 MASM32 的安装位置编辑修改 Var.bat 文件中的相关目录名称。 2. 代码维护工具 每个例子都包括了描述编译、链接方法的 makefile 文件, 使用 nmake 工具可以自动根据此文件进行编译链接,nmake 工 具可以从 Visual C++ 的 bin 目录中找到,也可以从作者的网 站中下载。 3. 编译环境和编译方法 建议使用命令行方式进行编译,以编译 Chapter02\Test 目录中 Test.asm 为例,步骤是: I. 打开一个“命令提示符”窗口。 II. 进入环境设置批处理文件 Var.bat 所在目录并执行 它,以后就可以使用这个“命令提示符”窗口编译 文件了。 x: cd \masm32\bin var III. 进入源代码目录: cd \chapter02\test IV. 使用 nmake 工具进行编译链接: nmake V. 执行编译好的可执行文件。 如果需要对源代码进行修改,不必关闭“命令提示符”窗口, 只要切换到编辑器窗口,在修改 *.asm 文件后重复进行第 IV 和 第 V 步骤即可。 # 特别注意:将光盘中的代码拷贝到硬盘后,必须将文件的只读属性去除! 4. 本光盘所包含目录的说明 根目录下的 *.pdf ;附录A、B、C的电子版文档 Chapter02\Test ;测试编译环境 Chapter03\HelloWorld ;Hello World Chapter04\FirstWindow ;用Win32汇编写第一个窗口 Chapter04\FirstWindow-1 ;用Win32汇编写第一个窗口 Chapter04\SendMessage ;窗口间的消息互发 Chapter04\SendMessage-1 ;窗口间的消息互发 Chapter05\Menu ;使用资源 - 使用菜单 Chapter05\Icon ;使用资源 - 使用图标 Chapter05\Dialog ;使用资源 - 使用对话框 Chapter05\Listbox ;使用资源 - 使用列表框 Chapter05\Control ;使用资源 - 使用子窗口控件 Chapter05\ShowVersionInfo ;使用资源 - 显示版本信息资源的程序 Chapter05\VersionInfo ;使用资源 - 使用版本信息资源 Chapter06\Timer ;定时器的使用 Chapter07\DcCopy ;在两个窗口的 DC 间互相拷贝屏幕 Chapter07\Clock ;模拟时钟程序 Chapter07\BmpClock ;用 Bitmap 图片做背景的模拟时钟程序 Chapter07\TestObject ;一些常见的绘图操作 Chapter08\CommDlg ;使用通用对话框 Chapter09\Toolbar ;使用工具栏 Chapter09\StatusBar ;使用状态栏 Chapter09\Richedit ;使用丰富编辑控件 Chapter09\Wordpad ;一个完整的文本编辑器例子 Chapter09\SubClass ;窗口的子类化例子 Chapter09\SuperClass ;窗口的超类化例子 Chapter10\MemInfo ;显示当前内存的使用情况 Chapter10\FindFile ;全盘查找文件的例子 Chapter10\FormatText ;文件读写例子 Chapter10\FormatText\FileMap ;使用内存映射文件进行文件读写的例子 Chapter10\MMFShare ;使用内存映射文件进行进程间数据共享 Chapter11\Dll\Dll ;最简单的动态链接库例子 - 编写 DLL Chapter11\Dll\MASM Sample ;最简单的动态链接库例子 - 使用 DLL Chapter11\Dll\VC++ Sample ;最简单的动态链接库例子 - 在VC++中使用汇编编写的DLL Chapter11\KeyHook ;Windows 钩子的例子 - 监听键盘动作 Chapter11\RecHook ;Windows 日志记录钩子的例子 - 监听键盘动作 Chapter12\Counter ;有问题的程序 - 一个计数程序 Chapter12\Thread ;用多线程的方式解决上一个程序的问题 Chapter12\Event ;使用事件对象 Chapter12\ThreadSynErr ;一个存在同步问题的多线程程序 Chapter12\ThreadSyn\UseCriticalSection ;使用临界区对象解决多线程同步问题 Chapter12\ThreadSyn\UseEvent ;使用事件对象解决多线程同步问题 Chapter12\ThreadSyn\UseMutex ;使用互斥对象解决多线程同步问题 Chapter12\ThreadSyn\UseSemaphore ;使用信号灯对象解决多线程同步问题 Chapter13\CmdLine ;使用命令行参数 Chapter13\Process ;创建进程的例子 Chapter13\ProcessList ;显示系统中运行的进程列表 Chapter13\Patch1 ;一个内存补丁程序 Chapter13\Patch2 ;一个内存补丁程序 Chapter13\Patch3 ;一个内存补丁程序 Chapter13\HideProcess9x ;Windows 9x下的进程隐藏 Chapter13\RemoteThreadDll ;用 DLL 注入的方法实现远程进程 Chapter13\RemoteThread ;不依靠任何外部文件实现远程进程 Chapter14\TopHandler ;使用筛选器处理异常 Chapter14\SEH01 ;最基本结构化异常处理例子 Chapter14\SEH02 ;改进后的结构化异常处理例子 Chapter14\Unwind ;异常处理中的展开操作例子 Chapter15\Ini ;使用 INI 文件 Chapter15\Reg ;操作注册表的例子 Chapter15\Associate ;操作注册表实现文件关联 Chapter16\TcpEcho ;实现 TCP 服务器端的简单例子 Chapter16\Chat-TCP ;用 TCP 协议实现的聊天室例子 Chapter17\PeInfo ;查看 PE 文件的基本信息 Chapter17\Import ;查看 PE 文件的导入表 Chapter17\Export ;查看 PE 文件的导出表 Chapter17\Resource ;查看 PE 文件的资源列表 Chapter17\Reloc ;查看 PE 文件的重定位信息 Chapter17\NoImport ;不使用导入表调用 API 函数 Chapter17\AddCode ;在 PE 文件上附加可执行代码的例子 Chapter18\OdbcSample ;用ODBC操作数据库的例子 Appendix A\EchoLine ;控制台输入输出的例子 Appendix B\MsgWindow01 ;消息机制试验 1 Appendix B\MsgWindow02 ;消息机制试验 2 Appendix B\MsgWindow03 ;消息机制试验 3 Appendix B\MsgWindow04 ;消息机制试验 4 Appendix C\BrowseFolder ;浏览目录对话框 6. 联系作者 虽然本书中所有的例子代码都已经在32位Windows 98、Windows 2000、 Windows XP、Windows Vista和Windows 7下测试通过,但也有存在Bug的可能,如果 发现代码存在错误或者有其它问题,请告知作者,联系方法: E-mail:luoyunbin@hotmail.com 感谢您的支持! 作者:罗云彬
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值