彙编语言基础及驱动程式开发


彙编语言基础及驱动程式开发

文章插图
彙编语言基础及驱动程式开发【彙编语言基础及驱动程式开发】《彙编语言基础及驱动程式开发》是2012年出版的图书 , 作者是戴水贵 。《普通高校本科计算机专业特色教材精选·算法与程式设计:彙编语言基础及驱动程式开发》对彙编语言作了全面介绍 , 并通过程式实例详细讲解了用彙编语言开发驱动程式的方法 。共7章 。第1章~4章为彙编语言基础知识 , 第5章~7章是用彙编语言开发驱动程式 。适用于彙编语言初学者 , 同时又是用彙编语言开发驱动程式的入门书 。驱动程式涉及的内容比较多 , 《普通高校本科计算机专业特色教材精选·算法与程式设计:彙编语言基础及驱动程式开发》以程式例的形式给出程式 , 让读者有整体概念 , 并在程式例中给出比较多的注释 , 使读者读完一个程式后知道如何解决此类问题 , 并起到举一反三的作用 。
基本介绍书名:彙编语言基础及驱动程式开发
作者:戴水贵
ISBN:9787302266495
页数:318
定价:29.00元
出版时间:2012-3
副标题:彙编语言基础及驱动程式开发
内容介绍《普通高校本科计算机专业特色教材精选·算法与程式设计:彙编语言基础及驱动程式开发》对彙编语言作了全面介绍 , 并通过程式实例详细讲解了用彙编语言开发驱动程式的方法 。共7章 。第1章~4章为彙编语言基础知识 , 第5章~7章是用彙编语言开发驱动程式 。适用于彙编语言初学者 , 同时又是用彙编语言开发驱动程式的入门书 。驱动程式涉及的内容比较多 , 《普通高校本科计算机专业特色教材精选·算法与程式设计:彙编语言基础及驱动程式开发》以程式例的形式给出程式 , 让读者有整体概念 , 并在程式例中给出比较多的注释 , 使读者读完一个程式后知道如何解决此类问题 , 并起到举一反三的作用 。图书目录第1章 Windows彙编语言基础知识11.1 如何学习Windows彙编语言11.2 Windows彙编语言与DOS彙编语言的区别11.3 二进制数21.3.1 将十进制数转为二进制、八进制和十六进制数21.3.2 计算机记忆体中的数是以二进制表示的41.3.3 计算机容量的一些计量单位51.3.4 无符号数的表示範围51.3.5 有符号数的表示範围61.3.6 补码71.3.7 数据的二进制存储81.4 彙编语言的基本元素91.4.1 整数常量91.4.2 算术运算符及其优先权101.4.3 实数常量101.4.4 字元常量和字元串常量101.4.5 标识符111.4.6 伪指令121.4.7 指令和标号121.4.8 MASM中的@@标号121.4.9 注释131.4.10 .model语句131.4.11 用.386指明使用的指令集141.4.12 节区的定义141.4.13 invoke伪指令151.4.14 续行号161.4.15 wsprintf格式化信息串函式和其他输入/输出函式16 彙编语言基础及驱动程式开发目录1.4.16 第一个输入/输出程式实例181.4.17 创建编译连线环境191.4.18 编译连线和运行201.4.19 建立编译连线批命令档案201.4.20 全局变数的定义和初始值201.4.21 局部变数231.4.22 可在程式代码中插入数据231.4.23 等号伪指令231.4.24 EQU伪指令241.4.25 当前地址运算符$261.4.26 OFFSET、ADDR操作符和LEA指令261.4.27 ALIGN和EVEN伪指令271.4.28 PTR操作符271.4.29 TYPE操作符281.4.30 LENGTHOF操作符291.4.31 SIZEOF或SIZE操作符301.4.32 LABEL伪指令301.4.33 TYPEDEF和TYPEDEF PTR操作符311.4.34 基数控制伪指令RADIX341.4.35 ORG伪指令341.4.36 REPT伪指令341.4.37 ASSUME伪指令361.4.38 SHORT伪指令361.4.39 在彙编语言中调用C语言内部函式361.4.40 在C语言中嵌入彙编语言371.4.41 在C语言程式中调用彙编语言子程式381.4.42 在C语言程式中使用彙编语言程式中的变数401.4.43 在彙编语言程式中使用C语言程式中的变数401.4.44 在C++程式中调用彙编语言程式中的变数和子程式411.5 高级语法431.5.1 while-endw语句431.5.2 条件运算符441.5.3 repeat-until语句461.5.4 if-elseif-endif语句471.5.5 continue语句481.5.6 break if语句501.6 结构体511.6.1 结构体的定义511.6.2 定义结构体变数并初始化521.6.3 结构体成员名的使用方法521.6.4 结构体的嵌套定义和使用541.6.5 用EQU定义结构体变数551.6.6 结构体定义例561.7 共用体581.7.1 共用体的定义和使用581.7.2 共用体的嵌套定义621.7.3 共用体和结构体的交叉定义631.7.4 位结构RECORD和位禁止MASK641.8 宏661.8.1 宏的定义及使用方法661.8.2 入口参数的赋值符“∶=”和宏的默认值701.8.3 REQ伪指令711.8.4 EXITM、ECHO伪指令和%运算符711.8.5 %@Line和@FileCur彙编操作符731.8.6 <>运算符741.8.7 入口参数类型VARARG751.8.8 判运算元属性伪指令 OPATTR751.8.9 @SizeStr()返回串大小78 1.8.10 @SubStr()从串中取子串791.8.11 SUBSTR从串中取子串801.8.12 替换操作符&801.8.13 TEXTEQU伪指令811.8.14 条件彙编伪指令821.8.15 FOR-ENDM宏指令871.8.16 FORC-ENDM宏指令881.9 过程891.9.1 无参过程的定义891.9.2 无参过程的调用方法891.9.3 有参过程的定义901.9.4 有参过程的调用方法901.9.5 过程中的USES参数911.9.6 过程中的语言类型921.9.7 用PROTO声明过程921.9.8 过程中的值传递和地址传递921.9.9 用堆叠传递参数951.9.10 缓冲区溢出攻击原理971.9.11 程式举例991.10 用IDA将过程反彙编1101.10.1 ENTER和LEAVE指令1101.10.2 RET和RETN指令的区别1121.10.3 不同类型过程的反彙编1131.10.4 过程反彙编规律总结1191.10.5 过程反彙编后的修改方法1191.10.6 一个完整程式的反彙编1201.10.7 option参数1261.11 常用数值转换库函式1281.12 库函式应用程式举例1281.13 宏应用程式例1331.13.1 宏$CTA0程式例1331.13.2 宏$CT0程式例134习题135第2章 暂存器和字元串操作指令1392.1 80386以上CPU处理器的暂存器1392.1.1 32位通用暂存器1392.1.2 16位段暂存器1402.1.3 32位标誌暂存器1402.1.4 算术运算影响的标誌1422.1.5 有符号数和无符号数各有一套转移指令1452.1.6 转移指令列表1462.1.7 32位程式指针暂存器1472.1.8 32位控制暂存器1472.1.9 系统地址暂存器1482.2 字元串操作指令1482.2.1 REP MOVSB的使用方法(递增複製)1492.2.2 REP MOVSB的使用方法(递减複製)1512.2.3 REP STOSB的使用方法1522.2.4 LODSB和STOSB的配合使用1532.2.5 SCASB的使用方法1532.2.6 CMPSB的使用方法1562.2.7 LOOPNZ的使用方法158习题161第3章 指令详解1633.1 普通指令1633.2 移位指令1863.3 转移指令191 3.4 特权指令191第4章 实模式和保护模式记忆体管理1974.1 地址线的根数和定址範围的关係1974.2 实地址模式下的逻辑地址1994.3 保护模式2004.3.1 保护模式下记忆体定址示意图2004.3.2 非系统段描述符的格式和含义2014.3.3 系统段描述符的格式和含义2034.3.4 定义段描述符结构体2044.3.5 段描述符结构体使用例2054.3.6 描述符表暂存器2064.3.7 门描述符2074.3.8 中断描述符表2094.3.9 分页管理与映射210习题213第5章 Windows设备驱动程式基础2155.1 何为Windows设备驱动程式2155.2 从一个最简单的设备驱动程式开始2165.2.1 一个最简单的设备驱动程式2175.2.2 注册和运行2195.3 UNICODE_STRING串结构体2205.3.1 双位元组字元串的定义方法2205.3.2 UNICODE_STRING串结构体的使用方法2215.3.3 用宏$CCOUNTED_UNICODE_STRING定义串2215.3.4 用sprintf格式化信息串2225.3.5 将ASCIIZ串转为UNICODE_STRING串2245.3.6 RtlUnicodeStringToAnsiString函式2275.3.7 将一个简单的程式反彙编2285.3.8 用RtlInitUnicodeString和宏unicode生成UNICODE_STRING串2305.3.9 设备名和符号连线名的命名格式2335.3.10 创建设备名和符号连线名程式实例2335.4 Windows设备控制字2345.4.1 用宏CTL_CODE构造设备控制字2365.4.2 用宏从设备控制字中取出某个栏位2375.5 用户程式和驱动程式之间的调用关係一2395.5.1 将使喇叭发声的代码放在DriverEntry中的驱动程式2395.5.2 用CreateService和StartService注册和运行驱动程式2415.6 用户程式和驱动程式之间的调用关係二2445.6.1 将读写I/O连线埠的驱动程式的地址置入MajorFunction数组2445.6.2 用户程式用DeviceIoControl和驱动程式通信2515.6.3 用.inf档案安装驱动程式254第6章 核心模式下的档案管理257 6.1 创建和删除资料夹2576.2 创建档案和打开档案写2596.3 打开档案读和删除档案2616.4 将数据添加到档案尾2646.5 修改档案属性265第7章 直接访问硬碟2697.1 用系统提供的驱动程式访问硬碟2697.2 如何获取硬碟参数2767.3 用in和out指令直接读/写硬碟扇区2807.3.1 硬碟连线埠暂存器功能列表2807.3.2 任务状态段TSS中的I/O许可点阵图2847.3.3 一个修改I/O许可点阵图的驱动程式2857.3.4 一个直接读取硬碟扇区的服务控制程式2887.3.5 用in/out指令获取硬碟序列号等参数2997.4 在PCI配置空间中找出PCI-IDE控制器的配置空间300附录A 键盘扫描码311附录B ASCII码錶313附录C 习题答案315