![Windows汇编语言程序设计教程[按需印刷]](http://images.china-pub.com/ebook20001-25000/24420/zcover.jpg)
| 第1章 基础知识1 1.1 常用数制及其相互转换1 1.2 存储器内的数字表示3 1.2.1 存储器3 1.2.2 存储顺序6 1.3 数据表示8 1.3.1 整数的表示8 1.3.2 字符的表示9 1.3.3 汉字的表示9 1.3.4 unicode标准10 1.3.5 bcd码11 习题111 第2章 intel 80x86系列微处理器13 2.1 intel cpu的发展13 2.1.1 4位cpu:400413 2.1.2 8位cpu:8008、808013 2.1.3 16位cpu:8086、8088、8028613 2.1.4 32位cpu:80386、8048614 2.1.5 准64位cpu:pentium、pⅱ、pⅲ、p414 2.1.6 64位cpu:itanium16 .2.2 pc机操作系统的发展16 2.2.1 ms-dos16 2.2.2 桌面windows系统17 2.2.3 windows nt系列17 2.2.4 linux18 2.3 16位cpu及dos基础19 2.3.1 执行单元19 2.3.2 总线接口单元20 2.3.3 寄存器20 2.3.4 存储器的分段22 2.3.5 dos的内存布局23 2.3.6 i/o地址空间25 2.4 32位cpu及windows基础25 2.4.1 三种工作模式25 2.4.2 寄存器27 2.4.3 windows应用程序的内存布局29 2.4.4 windows的保护机制32 习题234 第3章 windows汇编程序基础36 3.1 机器语言、汇编语言和高级语言36 3.1.1 机器语言36 3.1.2 汇编语言37 3.1.3 高级语言38 3.1.4 三种语言的比较38 3.2 汇编语言程序的上机过程39 3.2.1 汇编程序的开发过程40 3.2.2 masm汇编器41 3.2.3 link链接器42 3.2.4 汇编链接步骤42 3.3 汇编源程序的格式43 3.3.1 一个显示字符串的汇编程序43 3.3.2 程序格式44 3.3.3 一个windows界面的汇编程序51 3.4 操作数的寻址方式52 3.4.1 立即寻址53 3.4.2 寄存器寻址53 3.4.3 直接寻址54 3.4.4 寄存器间接寻址54 3.4.5 寄存器相对寻址55 3.4.6 基址变址寻址56 3.4.7 基址变址相对寻址57 3.4.8 基址变址比例相对寻址57 3.4.9 寻址方式总结58 3.4.10 段超越59 3.5 数据定义60 3.5.1 常数的表示60 3.5.2 简单数据类型61 3.5.3 dup伪操作62 3.5.4 数据定义的例子程序62 3.6 操作符66 3.6.1 常用伪操作66 3.6.2 算术操作符71 3.6.3 逻辑操作符72 3.6.4 关系操作符72 3.7 寻址方式的应用72 3.7.1 立即数72 3.7.2 数组元素的访问73 3.7.3 指针74 习题376 第4章 数据操作78 4.1 传送指令78 4.1.1 通用数据传送指令78 4.1.2 数据交换指令81 4.1.3 取地址指令82 4.2 算术运算83 4.2.1 加法指令83 4.2.2 减法指令86 4.2.3 符号位扩展指令89 4.2.4 乘法指令91 4.2.5 除法指令93 4.3 bcd码算术运算95 4.3.1 压缩bcd码调整指令95 4.3.2 非压缩bcd码调整指令96 4.4 位运算指令98 4.4.1 逻辑运算指令98 4.4.2 位操作指令102 4.4.3 移位指令104 习题4109 第5章 分支与循环程序设计111 5.1 转移111 5.1.1 无条件转移指令111 5.1.2 条件转移指令112 5.2 分支结构程序设计114 5.2.1 单分支结构和双分支结构115 5.2.2 多分支结构116 5.2.3 折半查找程序119 5.2.4 有序表插入121 5.3 循环程序设计123 5.3.1 循环指令124 5.3.2 不定次数的循环128 5.3.3 循环体中操作的控制128 5.3.4 多重循环130 5.4 跳转表132 5.4.1 switch语句132 5.4.2 跳转表133 习题5135 第6章 子程序设计137 6.1 堆栈137 6.1.1 堆栈空间137 6.1.2 进栈和出栈指令138 6.1.3 堆栈的用途141 6.2 子程序143 6.2.1 子程序的定义和调用144 6.2.2 调用和返回指令144 6.2.3 c语言函数的参数传递方式147 6.2.4 汇编语言子程序的参数传递方式153 6.2.5 带参数子程序的调用154 6.2.6 子程序中的局部变量157 6.2.7 子程序的嵌套163 6.2.8 子程序的递归163 6.3 windows api166 习题6168 第7章 常用数据结构171 7.1 数组与内存块171 7.1.1 块操作172 7.1.2 块传送指令173 7.1.3 块存储指令178 7.1.4 块装入指令178 7.1.5 块比较指令179 7.1.6 块扫描指令181 7.2 字符串处理182 7.2.1 常用字符串处理函数183 7.2.2 常用内存块处理函数185 7.3 结构188 7.3.1 表示时间的结构188 7.3.2 结构的声明和定义190 7.3.3 结构数组193 7.4 链表198 7.4.1 动态分配和释放内存198 7.4.2 链表中元素的插入与删除199 7.4.3 链表的排序204 7.4.4 双向链表207 7.5 函数指针207 7.5.1 指向子程序(函数)的指针208 7.5.2 结构中的函数指针210 7.6 程序执行环境212 7.6.1 输入/输出重定向212 7.6.2 命令行参数及程序返回值213 习题7214 第8章 汇编语言高级编程技术216 8.1 宏216 8.1.1 宏指令的定义和使用216 8.1.2 宏指令中参数的使用220 8.1.3 特殊的宏操作符222 8.1.4 宏与子程序的区别226 8.1.5 重复汇编227 8.1.6 条件汇编230 8.2 汇编高级语法236 8.2.1 条件测试表达式237 8.2.2 分支伪操作239 8.2.3 循环伪操作241 8.3 模块化程序设计244 8.3.1 模块化程序设计基本概念244 8.3.2 模块间的通信245 8.4 c和汇编的混合编程247 8.4.1 直接嵌入247 8.4.2 c程序调用汇编子程序249 8.4.3 汇编调用c函数259 8.4.4 c++与汇编261 8.5 程序优化268 8.5.1 运行时间的优化269 8.5.2 占用空间的优化276 习题8280 第9章 i/o程序设计283 9.1 i/o操作283 9.1.1 i/o端口及其分配283 9.1.2 i/o指令286 9.1.3 保护模式下i/o指令的限制288 9.2 直接传送方式289 9.2.1 cmos数据的读取289 9.2.2 扬声器发声程序292 9.2.3 串行i/o294 9.2.4 并行i/o296 9.3 中断传送方式298 9.3.1 基本原理298 9.3.2 中断服务程序300 9.4 dma传送方式302 9.4.1 dma传送的过程303 9.4.2 软盘控制器与dma304 9.5 文件i/o304 9.5.1 文件305 9.5.2 文件操作的基本函数307 9.5.3 文件处理实例310 习题9316 第10章 保护模式及其编程318 10.1 保护模式基础318 10.1.1 32位cpu内部结构318 10.1.2 三种运行模式320 10.1.3 寄存器321 10.1.4 显示cpu寄存器的值327 10.2 虚拟内存管理331 10.2.1 段式内存管理功能331 10.2.2 页式内存管理功能336 10.3 特权级保护347 10.3.1 对数据访问的保护348 10.3.2 对程序转移的保护350 10.3.3 门351 10.4 任务354 10.4.1 任务状态段354 10.4.2 任务切换358 10.4.3 输入/输出保护362 10.4.4 编写驱动程序修改i/o位图364 10.5 中断和异常369 10.5.1 中断和异常的类型369 10.5.2 中断门和陷阱门376 10.5.3 中断和异常的处理过程378 10.5.4 通过任务门的转移381 10.5.5 结构化异常处理384 10.6 虚拟8086模式389 10.6.1 虚拟8086任务389 10.6.2 虚拟8086模式的进入和退出391 10.7 操作系统类指令394 10.7.1 在实模式和任何特权级下可执行的指令395 10.7.2 仅在实模式及特权级0下可执行的指令396 10.7.3 仅在保护模式下可执行的指令397 习题10401 附录a 使用vc编译调试汇编程序403 附录b ascii码表410 附录c 汇编语言伪指令和操作符412 参考文献414 |
商品评论(0条)