Windows环境下32位汇编语⾔程序设计(典藏版)
Windows环境下32位汇编语⾔程序设计(典藏版)(含CD光盘1张)(畅销10年,经典再现!)
罗云彬著
ISBN 978-7-121-20759-4
2013年7⽉出版
定价:99.00元
756页
16开
编辑推荐
畅销10年,经典再现!
本书第1版出版⾄今已经10年多了,第3版出版⾄今也已经3年多了,期间笔者收到了⼤量的读者来信,对本书提出了各种意见和建议,综合各⽅⾯的考虑,典藏版做了以下改进。
●对第3版中已知的错误进⾏了修正,包括⼀些排版错误、错别字和例⼦中的Bug。
●对⼀些过时的内容进⾏了更新或删除。
●根据读者的反馈,对部分章节进⾏了重写。
内容提要
Windows环境下32位汇编语⾔是⼀种全新的编程语⾔。它使⽤与C++语⾔相同的API接⼝,不仅可以开发出⼤型的软件,⽽且是了解操作系统运⾏细节的最佳⽅式。
本书从编写应⽤程序的⾓度,从“Hello,World!”这个简单的例⼦开始到编写多线程、注册表和⽹络通信等复杂的程序,通过70多个实例逐步深⼊Windows环境下32位汇编语⾔编程的⽅⽅⾯⾯。
作者罗云彬拥有10余年汇编语⾔编程经验,本书是作者多年来编程⼯作的总结,适合于欲通过Windows环境下32汇编语⾔编写Windows程序的读者。
⽬录
基础篇
第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还是NASM        29
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章使⽤MASM    47
3.1  Win32汇编源程序的结构    47
3.1.1  模式定义    49
3.1.2  段的定义    51
3.1.3  程序结束和程序⼊⼝        54
3.1.4  注释和换⾏        54
3.2  调⽤API 55
3.2.1  API是什么  55
3.2.2  调⽤API      56
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  菜单和加速键的组成        121windows程序设计第7版
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