汇编语言基础及驱动程序开发
汇编语言基础及驱动程序开发封面图

汇编语言基础及驱动程序开发

戴水贵, 敖志刚, 俞海英, 冯小明, 编著

出版社:清华大学出版社

年代:2011

定价:37.0

书籍简介:

本书讲解汇编语言的基础知识,并详细介绍了用汇编语言开发驱动程序的方法。

书籍目录:

第1章 Windows汇编语言基础知识1

1.1 如何学习Windows汇编语言1

1.2 Windows汇编语言与DOS汇编语言的区别1

1.3 二进制数2

1.3.1 将十进制数转为二进制、八进制和十六进制数2

1.3.2 计算机内存中的数是以二进制表示的4

1.3.3 计算机容量的一些计量单位5

1.3.4 无符号数的表示范围5

1.3.5 有符号数的表示范围6

1.3.6 补码7

1.3.7 数据的二进制存储8

1.4 汇编语言的基本元素9

1.4.1 整数常量9

1.4.2 算术运算符及其优先级10

1.4.3 实数常量10

1.4.4 字符常量和字符串常量10

1.4.5 标识符11

1.4.6 伪指令12

1.4.7 指令和标号12

1.4.8 MASM中的@@标号12

1.4.9 注释13

1.4.10 .model语句13

1.4.11 用.386指明使用的指令集14

1.4.12 节区的定义14

1.4.13 invoke伪指令15

1.4.14 续行号16

1.4.15 wsprintf格式化信息串函数和其他

输入/输出函数16 汇编语言基础及驱动程序开发目录 1.4.16 第一个输入/输出程序实例18

1.4.17 创建编译连接环境19

1.4.18 编译连接和运行20

1.4.19 建立编译连接批命令文件20

1.4.20 全局变量的定义和初始值20

1.4.21 局部变量23

1.4.22 可在程序代码中插入数据23

1.4.23 等号伪指令23

1.4.24 EQU伪指令24

1.4.25 当前地址运算符$26

1.4.26 OFFSET、ADDR操作符和LEA指令26

1.4.27 ALIGN和EVEN伪指令27

1.4.28 PTR操作符27

1.4.29 TYPE操作符28

1.4.30 LENGTHOF操作符29

1.4.31 SIZEOF或SIZE操作符30

1.4.32 LABEL伪指令30

1.4.33 TYPEDEF和TYPEDEF PTR操作符31

1.4.34 基数控制伪指令RADIX34

1.4.35 ORG伪指令34

1.4.36 REPT伪指令34

1.4.37 ASSUME伪指令36

1.4.38 SHORT伪指令36

1.4.39 在汇编语言中调用C语言内部函数36

1.4.40 在C语言中嵌入汇编语言37

1.4.41 在C语言程序中调用汇编语言子程序38

1.4.42 在C语言程序中使用汇编语言程序中的变量40

1.4.43 在汇编语言程序中使用C语言程序中的变量40

1.4.44 在C++程序中调用汇编语言程序中的变量和子程序41

1.5 高级语法43

1.5.1 while-endw语句43

1.5.2 条件运算符44

1.5.3 repeat-until语句46

1.5.4 if-elseif-endif语句47

1.5.5 continue语句48

1.5.6 break if语句50

1.6 结构体51

1.6.1 结构体的定义51

1.6.2 定义结构体变量并初始化52

1.6.3 结构体成员名的使用方法52

1.6.4 结构体的嵌套定义和使用54

1.6.5 用EQU定义结构体变量55

1.6.6 结构体定义例56

1.7 共用体58

1.7.1 共用体的定义和使用58

1.7.2 共用体的嵌套定义62

1.7.3 共用体和结构体的交叉定义63

1.7.4 位结构RECORD和位屏蔽MASK64

1.8 宏66

1.8.1 宏的定义及使用方法66

1.8.2 入口参数的赋值符“∶=”和宏的默认值70

1.8.3 REQ伪指令71

1.8.4 EXITM、ECHO伪指令和%运算符71

1.8.5 %@Line和@FileCur汇编操作符73

1.8.6 运算符74

1.8.7 入口参数类型VARARG75

1.8.8 判操作数属性伪指令 OPATTR75

1.8.9 @SizeStr()返回串大小78

1.8.10 @SubStr()从串中取子串79

1.8.11 SUBSTR从串中取子串80

1.8.12 替换操作符&80

1.8.13 TEXTEQU伪指令81

1.8.14 条件汇编伪指令82

1.8.15 FOR-ENDM宏指令87

1.8.16 FORC-ENDM宏指令88

1.9 过程89

1.9.1 无参过程的定义89

1.9.2 无参过程的调用方法89

1.9.3 有参过程的定义90

1.9.4 有参过程的调用方法90

1.9.5 过程中的USES参数91

1.9.6 过程中的语言类型92

1.9.7 用PROTO声明过程92

1.9.8 过程中的值传递和地址传递92

1.9.9 用堆栈传递参数95

1.9.10 缓冲区溢出攻击原理97

1.9.11 程序举例99

1.10 用IDA将过程反汇编110

1.10.1 ENTER和LEAVE指令110

1.10.2 RET和RETN指令的区别112

1.10.3 不同类型过程的反汇编113

1.10.4 过程反汇编规律总结119

1.10.5 过程反汇编后的修改方法119

1.10.6 一个完整程序的反汇编120

1.10.7 option参数126

1.11 常用数值转换库函数128

1.12 库函数应用程序举例128

1.13 宏应用程序例133

1.13.1 宏$CTA0程序例133

1.13.2 宏$CT0程序例134

习题135

第2章 寄存器和字符串操作指令139

2.1 80386以上CPU处理器的寄存器139

2.1.1 32位通用寄存器139

2.1.2 16位段寄存器140

2.1.3 32位标志寄存器140

2.1.4 算术运算影响的标志142

2.1.5 有符号数和无符号数各有一套转移指令145

2.1.6 转移指令列表146

2.1.7 32位程序指针寄存器147

2.1.8 32位控制寄存器147

2.1.9 系统地址寄存器148

2.2 字符串操作指令148

2.2.1 REP MOVSB的使用方法(递增复制)149

2.2.2 REP MOVSB的使用方法(递减复制)151

2.2.3 REP STOSB的使用方法152

2.2.4 LODSB和STOSB的配合使用153

2.2.5 SCASB的使用方法153

2.2.6 CMPSB的使用方法156

2.2.7 LOOPNZ的使用方法158

习题161

第3章 指令详解163

3.1 普通指令163

3.2 移位指令186

3.3 转移指令191

3.4 特权指令191

第4章 实模式和保护模式内存管理197

4.1 地址线的根数和寻址范围的关系197

4.2 实地址模式下的逻辑地址199

4.3 保护模式200

4.3.1 保护模式下内存寻址示意图200

4.3.2 非系统段描述符的格式和含义201

4.3.3 系统段描述符的格式和含义203

4.3.4 定义段描述符结构体204

4.3.5 段描述符结构体使用例205

4.3.6 描述符表寄存器206

4.3.7 门描述符207

4.3.8 中断描述符表209

4.3.9 分页管理与映射210

习题213

第5章 Windows设备驱动程序基础215

5.1 何为Windows设备驱动程序215

5.2 从一个最简单的设备驱动程序开始216

5.2.1 一个最简单的设备驱动程序217

5.2.2 注册和运行219

5.3 UNICODE_STRING串结构体220

5.3.1 双字节字符串的定义方法220

5.3.2 UNICODE_STRING串结构体的使用方法221

5.3.3 用宏$CCOUNTED_UNICODE_STRING定义串221

5.3.4 用sprintf格式化信息串222

5.3.5 将ASCIIZ串转为UNICODE_STRING串224

5.3.6 RtlUnicodeStringToAnsiString函数227

5.3.7 将一个简单的程序反汇编228

5.3.8 用RtlInitUnicodeString和宏unicode生成

UNICODE_STRING串230

5.3.9 设备名和符号连接名的命名格式233

5.3.10 创建设备名和符号连接名程序实例233

5.4 Windows设备控制字234

5.4.1 用宏CTL_CODE构造设备控制字236

5.4.2 用宏从设备控制字中取出某个字段237

5.5 用户程序和驱动程序之间的调用关系一239

5.5.1 将使喇叭发声的代码放在DriverEntry中的驱动程序239

5.5.2 用CreateService和StartService注册和运行驱动程序241

5.6 用户程序和驱动程序之间的调用关系二244

5.6.1 将读写I/O端口的驱动程序的地址置入MajorFunction数组244

5.6.2 用户程序用DeviceIoControl和驱动程序通信251

5.6.3 用.inf文件安装驱动程序254

第6章 内核模式下的文件管理257

6.1 创建和删除文件夹257

6.2 创建文件和打开文件写259

6.3 打开文件读和删除文件261

6.4 将数据添加到文件尾264

6.5 修改文件属性265

第7章 直接访问硬盘269

7.1 用系统提供的驱动程序访问硬盘269

7.2 如何获取硬盘参数276

7.3 用in和out指令直接读/写硬盘扇区280

7.3.1 硬盘端口寄存器功能列表280

7.3.2 任务状态段TSS中的I/O许可位图284

7.3.3 一个修改I/O许可位图的驱动程序285

7.3.4 一个直接读取硬盘扇区的服务控制程序288

7.3.5 用in/out指令获取硬盘序列号等参数299

7.4 在PCI配置空间中找出PCI-IDE控制器的配置空间300

附录A 键盘扫描码311

附录B ASCII码表313

附录C 习题答案315

内容摘要:

本书对汇编语言作了全面介绍,并通过程序实例详细讲解了用汇编语言开发驱动程序的方法。全书共7章。第1章~4章为汇编语言基础知识,第5章~7章是用汇编语言开发驱动程序。本书适用于汇编语言初学者,同时又是用汇编语言开发驱动程序的入门书。 驱动程序涉及的内容比较多,本书以程序例的形式给出程序,让读者有整体概念,并在程序例中给出比较多的注释,使读者读完一个程序后知道如何解决此类问题,并起到举一反三的作用。

编辑推荐:

·《普通高校本科计算机专业特色教材精选•算法与程序设计:汇编语言基础及驱动程序开发》分两个部分,第一部分是汇编语言基础,第二部分是用汇编语言开发驱动程序。本书适用于汇编语言初学者.同时又是学习驱动程序开发的入门书。
·《普通高校本科计算机专业特色教材精选•算法与程序设计:汇编语言基础及驱动程序开发》以程序案例的形式介绍了驱动程序的开发,让读者对驱动程序有整体概念.并在程序案例中给出比较多的注释,使读者读完一个程序后知道如何解决此类问题,起到举一反三的功效。
·读完《普通高校本科计算机专业特色教材精选•算法与程序设计:汇编语言基础及驱动程序开发》,你不会对汇编语言望而却步,不会对驱动程序有“云里雾里”的感觉.你将成为用汇编语言开发应用程序的行家里手。
·《普通高校本科计算机专业特色教材精选•算法与程序设计:汇编语言基础及驱动程序开发》可作为大专院校的教材.也是自学者的入门好书。

书籍规格:

书籍详细信息
书名汇编语言基础及驱动程序开发站内查询相似图书
9787302266495
如需购买下载《汇编语言基础及驱动程序开发》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)37.0语种简体中文
尺寸26 × 19装帧平装
页数印数 3000

书籍信息归属:

汇编语言基础及驱动程序开发是清华大学出版社于2011.出版的中图分类号为 TP313 的主题关于 汇编语言-驱动程序-程序设计-高等学校-教材 的书籍。