您好,欢迎来到聚文网。 登录 免费注册
汇编语言:基于x86处理器(原书第8版)

汇编语言:基于x86处理器(原书第8版)

  • 出版社: 机械工业
  • 作者: [美]基普·R.欧文(Kip R.Irvine)
  • 商品条码: 9787111690436
  • 版次: 1
  • 开本: 16开
  • 页数: 567
  • 出版年份: 2022
  • 印次: 1
定价:¥149 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书专门为Intel/Windows/DOS平台编写,对汇编语言进行了完整且详细的研究和讲解,教授读者在机器级编写和调试程序。第1~9章包含汇编语言的基本概念、x86处理器架构、汇编语言基础、过程等核心概念,后续章节讲解了结构和宏、MS-Windows编程、浮点数处理和指令编码等内容。本书不仅可作为汇编语言课程的教材,还可以作为计算机系统基础和体系结构基础方面的教材,符合国内所提倡的系统观教学理念。书中不仅讲授具体问题的解决方案,而且注重帮助学生举一反三,综合应用,学到的编程理念能顺利应用于其他编程的课程中。
作者简介
基普·R. 欧文(Kip R. Irvine)拥有迈阿密大学计算机科学硕士、音乐艺术博士学位,现为佛罗里达国际大学高级讲师,教授计算机相关的课程。他著有多本编程教材,这些书被翻译成多国语言,涵盖的主题包括汇编语言、C++、Visual Basic和COBOL。
目录
译者序<br/>前言<br/>关于作者<br/>相关码表<br/>第1章 基本概念 1<br/>1.1 欢迎来到汇编语言的世界 1<br/>1.1.1 读者可能会问的问题 2<br/>1.1.2 汇编语言的应用 4<br/>1.1.3 本节回顾 5<br/>1.2 虚拟机概念 5<br/>1.2.1 本节回顾 6<br/>1.3 数据表示 7<br/>1.3.1 二进制整数 7<br/>1.3.2 二进制加法 9<br/>1.3.3 整数存储大小 9<br/>1.3.4 十六进制整数 10<br/>1.3.5 十六进制加法 11<br/>1.3.6 有符号二进制整数 12<br/>1.3.7 二进制减法 14<br/>1.3.8 字符存储 14<br/>1.3.9 二进制编码的十进制数 16<br/>1.3.10 本节回顾 16<br/>1.4 布尔表达式 17<br/>1.4.1 布尔函数的真值表 18<br/>1.4.2 本节回顾 19<br/>1.5 本章小结 20<br/>1.6 关键术语 20<br/>1.7 复习题和练习 21<br/>1.7.1 简答题 21<br/>1.7.2 算法题 22<br/>第2章 x86处理器架构 23<br/>2.1 一般概念 23<br/>2.1.1 基本微机设计 23<br/>2.1.2 指令执行周期 24<br/>2.1.3 读取内存 25<br/>2.1.4 加载并执行程序 26<br/>2.1.5 本节回顾 27<br/>2.2 32位x86处理器 27<br/>2.2.1 操作模式 27<br/>2.2.2 基本执行环境 28<br/>2.2.3 x86内存管理 30<br/>2.2.4 本节回顾 31<br/>2.3 64位x86-64处理器 31<br/>2.3.1 64位操作模式 32<br/>2.3.2 基本的64位执行环境 32<br/>2.3.3 本节回顾 33<br/>2.4 典型x86计算机的组件 33<br/>2.4.1 母板 33<br/>2.4.2 内存 35<br/>2.4.3 本节回顾 35<br/>2.5 输入/输出系统 36<br/>2.5.1 I/O访问层次 36<br/>2.5.2 本节回顾 38<br/>2.6 本章小结 38<br/>2.7 关键术语 39<br/>2.8 复习题 40<br/>第3章 汇编语言基础 41<br/>3.1 基本语言元素 41<br/>3.1.1 第一个汇编语言程序 41<br/>3.1.2 整数字面量 42<br/>3.1.3 常整数表达式 43<br/>3.1.4 实数字面量 43<br/>3.1.5 字符字面量 44<br/>3.1.6 字符串字面量 44<br/>3.1.7 保留字 44<br/>3.1.8 标识符 45<br/>3.1.9 伪指令 45<br/>3.1.10 指令 46<br/>3.1.11 本节回顾 48<br/>3.2 示例:整数加减法 48<br/>3.2.1 AddTwo程序 48<br/>3.2.2 运行和调试AddTwo程序 50<br/>3.2.3 程序模板 54<br/>3.2.4 本节回顾 54<br/>3.3 汇编、链接和运行程序 55<br/>3.3.1 汇编–链接–执行周期 55<br/>3.3.2 列表文件 55<br/>3.3.3 本节回顾 57<br/>3.4 定义数据 57<br/>3.4.1 内部数据类型 57<br/>3.4.2 数据定义语句 58<br/>3.4.3 向AddTwo程序添加一个变量 58<br/>3.4.4 定义BYTE和SBYTE数据 59<br/>3.4.5 定义WORD和SWORD数据 61<br/>3.4.6 定义DWORD和SDWORD数据 61<br/>3.4.7 定义QWORD数据 62<br/>3.4.8 定义压缩的BCD(TBYTE)数据 62<br/>3.4.9 定义浮点类型 62<br/>3.4.10 变量相加程序 63<br/>3.4.11 小端序 64<br/>3.4.12 声明未初始化数据 64<br/>3.4.13 本节回顾 65<br/>3.5 符号常量 65<br/>3.5.1 等号伪指令 66<br/>3.5.2 计算数组和字符串的大小 67<br/>3.5.3 EQU伪指令 68<br/>3.5.4 TEXTEQU伪指令 68<br/>3.5.5 本节回顾 69<br/>3.6 64位编程介绍 70<br/>3.7 本章小结 71<br/>3.8 关键术语 72<br/>3.8.1 术语 72<br/>3.8.2 指令、操作符及伪指令 72<br/>3.9 复习题和练习 73<br/>3.9.1 简答题 73<br/>3.9.2 算法题 73<br/>3.10 编程练习 74<br/>第4章 数据传送、寻址及算术运算 75<br/>4.1 数据传送指令 75<br/>4.1.1 引言 75<br/>4.1.2 操作数类型 75<br/>4.1.3 直接内存操作数 76<br/>4.1.4 MOV指令 77<br/>4.1.5 整数的零/符号扩展 78<br/>4.1.6 LAHF和SAHF指令 79<br/>4.1.7 XCHG指令 80<br/>4.1.8 直接–偏移量操作数 80<br/>4.1.9 传送数据的示例 81<br/>4.1.10 本节回顾 83<br/>4.2 加法和减法 84<br/>4.2.1 INC和DEC指令 84<br/>4.2.2 ADD指令 84<br/>4.2.3 SUB指令 85<br/>4.2.4 NEG指令 85<br/>4.2.5 实现算术表达式 85<br/>4.2.6 加减法影响的标志 86<br/>4.2.7 示例程序(AddSubTest) 88<br/>4.2.8 本节回顾 89<br/>4.3 与数据相关的操作符和伪指令 90<br/>4.3.1 OFFSET操作符 90<br/>4.3.2 ALIGN伪指令 91<br/>4.3.3 PTR操作符 92<br/>4.3.4 TYPE操作符 92<br/>4.3.5 LENGTHOF操作符 93<br/>4.3.6 SIZEOF操作符 93<br/>4.3.7 LABEL伪指令 94<br/>4.3.8 本节回顾 94<br/>4.4 间接寻址 94<br/>4.4.1 间接操作数 94<br/>4.4.2 数组 95<br/>4.4.3 变址操作数 96<br/>4.4.4 指针 97<br/>4.4.5 本节回顾 99<br/>4.5 JMP和LOOP指令 100<br/>4.5.1 JMP指令 100<br/>4.5.2 LOOP指令 101<br/>4.5.3 在Visual Studio调试器中显示数组 102<br/>4.5.4 整数数组求和 103<br/>4.5.5 复制字符串 103<br/>4.5.6 本节回顾 104<br/>4.6 64位编程 105<br/>4.6.1 MOV指令 105<br/>4.6.2 64位版本的SumArray程序 105<br/>4.6.3 加法和减法 106<br/>4.6.4 本节回顾 107<br/>4.7 本章小结 107<br/>4.8 关键术语 109<br/>4.8.1 术语 109<br/>4.8.2 指令、操作符及伪指令 109<br/>4.9 复习题和练习 109<br/>4.9.1 简答题 109<br/>4.9.2 算法题 111<br/>4.10 编程练习 112<br/>第5章 过程 113<br/>5.1 堆栈操作 113<br/>5.1.1 运行时堆栈(32位模式) 113<br/>5.1.2 PUSH和POP指令 115<br/>5.1.3 本节回顾 118<br/>5.2 定义和使用过程 118<br/>5.2.1 PROC伪指令 118<br/>5.2.2 CALL和RET指令 120<br/>5.2.3 嵌套过程调用 120<br/>5.2.4 向过程传递寄存器参数 121<br/>5.2.5 示例:整数数组求和 122<br/>5.2.6 保存和恢复寄存器 123<br/>5.2.7 本节回顾 124<br/>5.3 链接到外部库 124<br/>5.3.1 背景信息 125<br/>5.3.2 本节回顾 125<br/>5.4 Irvine32库 126<br/>5.4.1 创建库的动机 126<br/>5.4.2 Win32控制台窗口 127<br/>5.4.3 各个过程的描述 128<br/>5.4.4 库测试程序 138<br/>5.4.5 本节回顾 144<br/>5.5 64位汇编编程 145<br/>5.5.1 Irvine64库 145<br/>5.5.2 调用64位子例程 145<br/>5.5.3 x64调用规约 146<br/>5.5.4 调用过程的示例程序 146<br/>5.5.5 本节回顾 147<br/>5.6 本章小结 148<br/>5.7 关键术语 149<br/>5.7.1 术语 149<br/>5.7.2 指令、操作符及伪指令 149<br/>5.8 复习题和练习 149<br/>5.8.1 简答题 149<br/>5.8.2 算法题 151<br/>5.9 编程练习 152<br/>第6章 条件处理 154<br/>6.1 布尔和比较指令 154<br/>6.1.1 CPU状态标志 154<br/>6.1.2 AND指令 155<br/>6.1.3 OR指令 156<br/>6.1.4 位映射集 157<br/>6.1.5 XOR指令 158<br/>6.1.6 NOT指令 159<br/>6.1.7 TEST指令 159<br/>6.1.8 CMP指令 160<br/>6.1.9 置位和清零各个CPU标志 161<br/>6.1.10 64位模式下的布尔指令 161<br/>6.1.11 本节回顾 161<br/>6.2 条件跳转 162<br/>6.2.1 条件结构 162<br/>6.2.2 Jcond指令 162<br/>6.2.3 条件跳转指令的类型 163<br/>6.2.4 条件跳转应用 166<br/>6.2.5 本节回顾 169<br/>6.3 条件循环指令 170<br/>6.3.1 LOOPZ和LOOPE指令 170<br/>6.3.2 LOOPNZ和LOOPNE指令 170<br/>6.3.3 本节回顾 171<br/>6.4 条件结构 171<br/>6.4.1 块结构的IF语句 171<br/>6.4.2 复合表达式 175<br/>6.4.3 WHILE循环 176<br/>6.4.4 表驱动的选择 178<br/>6.4.5 本节回顾 180<br/>6.5 应用:有限状态机 181<br/>6.5.1 验证输入字符串 181<br/>6.5.2 验证有符号整数 182<br/>6.5.3 本节回顾 185<br/>6.6 条件控制流伪指令(可选主题) 186<br/>6.6.1 创建IF语句 186<br/>6.6.2 有符号数和无符号数的比较 188<br/>6.6.3 复合表达式 189<br/>6.6.4 用.REPEAT和.WHILE创建循环 191<br/>6.7 本章小结 192<br/>6.8 关键术语 193<br/>6.8.1 术语 193<br/>6.8.2 指令、操作符及伪指令 193<br/>6.9 复习题和练习 194<br/>6.9.1 简答题 194<br/>6.9.2 算法题 195<br/>6.10 编程练习 196<br/>6.10.1 对代码测试的建议 196<br/>6.10.2 习题描述 197<br/>第7章 整数算术运算 200<br/>7.1 移位和循环移位指令 200<br/>7.1.1 逻辑移位和算术移位 200<br/>7.1.2 SHL指令 201<br/>7.1.3 SHR指令 202<br/>7.1.4 SAL和SAR指令 202<br/>7.1.5 ROL指令 203<br/>7.1.6 ROR指令 204<br/>7.1.7 RCL和RCR指令 204<br/>7.1.8 有符号数溢出 205<br/>7.1.9 SHLD/SHRD指令 205<br/>7.1.10 本节回顾 207<br/>7.2 移位和循环移位的应用 207<br/>7.2.1 多个双字的移位 208<br/>7.2.2 通过移位做乘法 208<br/>7.2.3 显示二进制位 209<br/>7.2.4 提取文件日期字段 210<br/>7.2.5 本节回顾 210<br/>7.3 乘法和除法指令 212<br/>7.3.1 无符号整数乘法(MUL) 212<br/>7.3.2 有符号整数乘法(IMUL) 213<br/>7.3.3 测量程序执行时间 216<br/>7.3.4 无符号整数除法(DIV) 217<br/>7.3.5 有符号整数除法(IDIV) 219<br/>7.3.6 实现算术表达式 222<br/>7.3.7 本节回顾 224<br/>7.4 扩展的加减法 225<br/>7.4.1 ADC指令 225<br/>7.4.2 扩展加法的示例 225<br/>7.4.3 SBB指令 227<br/>7.4.4 本节回顾 228<br/>7.5 ASCII和非压缩十进制算术运算 228<br/>7.5.1 AAA指令 229<br/>7.5.2 AAS指令 230<br/>7.5.3 AAM指令 231<br/>7.5.4 AAD指令 231<br/>7.5.5 本节回顾 231<br/>7.6 压缩十进制的算术运算 232<br/>7.6.1 DAA指令 232<br/>7.6.2 DAS指令 233<br/>7.6.3 本节回顾 233<br/>7.7 本章小结 234<br/>7.8 关键术语 235<br/>7.8.1 术语 235<br/>7.8.2 指令、操作符及伪指令 235<br/>7.9 复习题和练习 235<br/>7.9.1 简答题 235<br/>7.9.2 算法题 237<br/>7.10 编程练习 237<br/>第8章 高级过程 240<br/>8.1 引言 240<br/>8.2 堆栈帧 240<br/>8.2.1 堆栈参数 240<br/>8.2.2 寄存器参数的缺点 241<br/>8.2.3 访问堆栈参数 243<br/>8.2.4 32位调用规约 245<br/>8.2.5 局部变量 246<br/>8.2.6 引用参数 247<br/>8.2.7 LEA指令 248<br/>8.2.8 ENTER和LEAVE指令 249<br/>8.2.9 LOCAL伪指令 250<br/>8.2.10 Microsoft x64调用规约 251<br/>8.2.11 本节回顾 252<br/>8.3 递归 252<br/>8.3.1 递归求和 253<br/>8.3.2 计算阶乘 254<br/>8.3.3 本节回顾 258<br/>8.4 INVOKE、ADDR、PROC及PROTO 259<br/>8.4.1 INVOKE伪指令 259<br/>8.4.2 ADDR操作符 260<br/>8.4.3 PROC伪指令 260<br/>8.4.4 PROTO伪指令 263<br/>8.4.5 参数分类 266<br/>8.4.6 示例:交换两个整数 266<br/>8.4.7 调试提示 267<br/>8.4.8 WriteStackFrame过程 267<br/>8.4.9 本节回顾 268<br/>8.5 创建多模块程序 269<br/>8.5.1 隐藏和导出过程名 269<br/>8.5.2 调用外部过程 269<br/>8.5.3 跨模块使用变量和符号 270<br/>8.5.4 示例:ArraySum程序 271<br/>8.5.5 用Extern创建模块 271<br/>8.5.6 用INVOKE和PROTO创建模块 274<br/>8.5.7 本节回顾 277<br/>8.6 参数的高级用法(可选主题) 277<br/>8.6.1 受USES操作符影响的堆栈 277<br/>8.6.2 向堆栈传递8位和16位参数 278<br/>8.6.3 传递64位参数 279<br/>8.6.4 非双字局部变量 280<br/>8.7 Java字节码(可选主题) 281<br/>8.7.1 Java虚拟机 281<br/>8.7.2 指令集 282<br/>8.7.3 Java反汇编示例 283<br/>8.7.4 示例:条件分支 285<br/>8.8 本章小结 287<br/>8.9 关键术语 288<br/>8.9.1 术语 288<br/>8.9.2 指令、操作符及伪指令 288<br/>8.10 复习题和练习 288<br/>8.10.1 简答题 288<br/>8.10.2 算法题 289<br/>8.11 编程练习 289<br/>第9章 字符串和数组 291<br/>9.1 引言 291<br/>9.2 字符串原语指令 291<br/>9.2.1 MOVSB、MOVSW及MOVSD 292<br/>9.2.2 CMPSB、CMPSW及CMPSD 293<br/>9.2.3 SCASB、SCASW及SCASD 293<br/>9.2.4 STOSB、STOSW及STOSD 294<br/>9.2.5 LODSB、LODSW及LODSD 294<br/>9.2.6 本节回顾 294<br/>9.3 若干字符串过程 295<br/>9.3.1 Str_compare过程 295<br/>9.3.2 Str_length过程 296<br/>9.3.3 Str_copy过程 297<br/>9.3.4 Str_trim过程 297<br/>9.3.5 Str_ucase过程 299<br/>9.3.6 字符串库演示程序 300<br/>9.3.7 Irvine64库中的字符串过程 301<br/>9.3.8 本节回顾 304<br/>9.4 二维数组 304<br/>9.4.1 行列顺序 304<br/>9.4.2 基址–变址操作数 305<br/>9.4.3 基址–变址–位移操作数 306<br/>9.4.4 64位模式下的基址–变址操作数 307<br/>9.4.5 本节回顾 308<br/>9.5 整数数组的查找和排序 308<br/>9.5.1 冒泡排序 309<br/>9.5.2 对半查找 310<br/>9.5.3 本节回顾 315<br/>9.6 Java字节码:字符串处理(可选主题) 315<br/>9.7 本章小结 316<br/>9.8 关键术语和指令 317<br/>9.9 复习题和练习 317<br/>9.9.1 简答题 317<br/>9.9.2 算法题 318<br/>9.10 编程练习 318<br/>第10章 结构和宏 322<br/>10.1 结构 322<br/>10.1.1 定义结构 322<br/>10.1.2 声明结构对象 323<br/>10.1.3 引用结构对象 324<br/>10.1.4 示例:显示系统时间 327<br/>10.1.5 结构包含结构 329<br/>10.1.6 示例:醉汉行走 329<br/>10.1.7 声明和使用联合 332<br/>10.1.8 本节回顾 334<br/>10.2 宏 334<br/>10.2.1 概述 334<br/>10.2.2 定义宏 335<br/>10.2.3 调用宏 336<br/>10.2.4 其他宏特性 337<br/>10.2.5 使用本书的宏库(仅32位模式) 340<br/>10.2.6 示例程序:封装器 345<br/>10.2.7 本节回顾 346<br/>10.3 条件汇编伪指令 347<br/>10.3.1 检查缺失的参数 347<br/>10.3.2 默认参数初始化值 348<br/>10.3.3 布尔表达式 348<br/>10.3.4 IF、ELSE及ENDIF伪指令 349<br/>10.3.5 IFIDN和IFIDNI伪指令 349<br/>10.3.6 示例:矩阵行求和 350<br/>10.3.7 特殊操作符 353<br/>10.3.8 宏函数 356<br/>10.3.9 本节回顾 357<br/>10.4 定义重复语句块 357<br/>10.4.1 WHILE伪指令 358<br/>10.4.2 REPEAT伪指令 358<br/>10.4.3 FOR伪指令 358<br/>10.4.4 FORC伪指令 359<br/>10.4.5 示例:链表 360<br/>10.4.6 本节回顾 361<br/>10.5 本章小结 362<br/>10.6 关键术语 363<br/>10.6.1 术语 363<br/>10.6.2 操作符及伪指令 363<br/>10.7 复习题和练习 364<br/>10.7.1 简答题 364<br/>10.7.2 算法题 364<br/>10.8 编程练习 366<br/>第11章 MS-Windows编程 368<br/>11.1 Win32控制台编程 368<br/>11.1.1 背景信息 368<br/>11.1.2 Win32控制台函数 371<br/>11.1.3 显示消息框 373<br/>11.1.4 控制台输入 375<br/>11.1.5 控制台输出 380<br/>11.1.6 读写文件 382<br/>11.1.7 Irvine32库中的文件I/O 385<br/>11.1.8 测试文件I/O过程 386<br/>11.1.9 控制台窗口操作 389<br/>11.1.10 控制光标 392<br/>11.1.11 控制文本颜色 392<br/>11.1.12 时间和日期函数 394<br/>11.1.13 使用64位Windows API 397<br/>11.1.14 本节回顾 398<br/>11.2 编写图形化的Windows应用程序 398<br/>11.2.1 必要的结构 399<br/>11.2.2 MessageBox函数 400<br/>11.2.3 WinMain过程 400<br/>11.2.4 WinProc过程 401<br/>11.2.5 ErrorHandler过程 401<br/>11.2.6 程序清单 402<br/>11.2.7 本节回顾 405<br/>11.3 动态内存分配 405<br/>11.3.1 HeapTest程序 408<br/>11.3.2 本节回顾 411<br/>11.4 32位x86存储管理 411<br/>11.4.1 线性地址 412<br/>11.4.2 页转换 414<br/>11.4.3 本节回顾 416<br/>11.5 本章小结 416<br/>11.6 关键术语 417<br/>11.7 复习题和练习 417<br/>11.7.1 简答题 417<br/>11.7.2 算法题 418<br/>11.8 编程练习 418<br/>第12章 浮点数处理和指令编码 420<br/>12.1 浮点数的二进制表示 420<br/>12.1.1 IEEE二进制浮点数表示 420<br/>12.1.2 阶数 421<br/>12.1.3 规格化二进制浮点数 422<br/>12.1.4 创建IEEE表示 422<br/>12.1.5 将十进制分数转换为二进制实数 424<br/>12.1.6 本节回顾 425<br/>12.2 浮点单元 425<br/>12.2.1 FPU寄存器栈 426<br/>12.2.2 舍入 428<br/>12.2.3 浮点异常 429<br/>12.2.4 浮点指令集 429<br/>12.2.5 算术运算指令 432<br/>12.2.6 比较浮点数值 435<br/>12.2.7 读写浮点数值 437<br/>12.2.8 异常同步 438<br/>12.2.9 代码示例 439<br/>12.2.10 混合模式算术运算 440<br/>12.2.11 屏蔽和非屏蔽异常 441<br/>12.2.12 本节回顾 442<br/>12.3 x86指令编码 443<br/>12.3.1 指令格式 443<br/>12.3.2 单字节指令 444<br/>12.3.3 将立即数送入寄存器 444<br/>12.3.4 寄存器模式指令 445<br/>12.3.5 处理器操作数大小前缀 446<br/>12.3.6 内存模式指令 446<br/>12.3.7 本节回顾 448<br/>12.4 本章小结 449<br/>12.5 关键术语 450<br/>12.6 复习题和练习 450<br/>12.6.1 简答题 450<br/>12.6.2 算法题 451<br/>12.7 编程练习 452<br/>第13章 高级语言接口 454<br/>13.1 引言 454<br/>13.1.1 通用规约 454<br/>13.1.2 .MODEL伪指令 455<br/>13.1.3 检查编译器生成的代码 457<br/>13.1.4 本节回顾 460<br/>13.2 内联汇编代码 461<br/>13.2.1 Visual C++中的_?_asm伪指令 461<br/>13.2.2 文件加密示例 463<br/>13.2.3 本节回顾 465<br/>13.3 将32位汇编语言代码链接到C/C++ 466<br/>13.3.1 IndexOf示例 466<br/>13.3.2 调用C和C++函数 469<br/>13.3.3 乘法表的示例 471<br/>13.3.4 本节回顾 474<br/>13.4 本章小结 474<br/>13.5 关键术语 474<br/>13.6 复习题 474<br/>13.7 编程练习 475<br/>第14章 16位MS-DOS编程 476<br/>14.1 MS-DOS和IBM-PC 476<br/>14.1.1 内存组织 476<br/>14.1.2 重定向输入/输出 478<br/>14.1.3 软件中断 78<br/>14.1.4 INT指令 478<br/>14.1.5 16位程序的代码编写 479<br/>14.1.6 本节回顾 481<br/>14.2 MS-DOS功能调用(INT 21h) 481<br/>14.2.1 若干输出功能 482<br/>14.2.2 Hello World程序示例 483<br/>14.2.3 若干输入功能 484<br/>14.2.4 日期/时间功能 487<br/>14.2.5 本节回顾 490<br/>14.3 标准的MS-DOS文件I/O服务 490<br/>14.3.1 创建或打开文件(716Ch) 491<br/>14.3.2 关闭文件句柄(3Eh) 492<br/>14.3.3 移动文件指针(42h) 493<br/>14.3.4 获取文件创建日期和时间 493<br/>14.3.5 若干库过程 494<br/>14.3.6 示例:读取和复制一个文本文件 495<br/>14.3.7 读取MS-DOS命令的尾部 496<br/>14.3.8 示例:创建二进制文件 498<br/>14.3.9 本节回顾 501<br/>14.4 本章小结 501<br/>14.5 关键术语 503<br/>14.6 编程练习 503<br/>第15章 磁盘基础知识 505<br/>15.1 磁盘存储系统 505<br/>15.1.1 磁道、柱面及扇区 505<br/>15.1.2 磁盘分区(卷) 506<br/>15.1.3 本节回顾 507<br/>15.2 文件系统 508<br/>15.2.1 FAT12 508<br/>15.2.2 FAT16 509<br/>15.2.3 FAT32 509<br/>15.2.4 NTFS 509<br/>15.2.5 主磁盘区 510<br/>15.2.6 本节回顾 510<br/>15.3 磁盘目录 511<br/>15.3.1 MS-DOS目录结构 512<br/>15.3.2 MS-Windows中的长文件名 513<br/>15.3.3 文件分配表 515<br/>15.3.4 本节回顾 515<br/>15.4 读写磁盘扇区 515<br/>15.4.1 扇区显示程序 517<br/>15.4.2 本节回顾 520<br/>15.5 系统级文件功能 520<br/>15.5.1 获取磁盘空闲空间(7303h) 520<br/>15.5.2 创建子目录(39h) 523<br/>15.5.3 删除子目录(3Ah) 523<br/>15.5.4 设置当前目录(3Bh) 523<br/>15.5.5 获取当前目录(47h) 524<br/>15.5.6 获取和设置文件属性(7143h) 524<br/>15.5.7 本节回顾 525<br/>15.6 本章小结 525<br/>15.7 关键术语 526<br/>15.8 编程练习 526<br/>第16章 BIOS级编程 528<br/>16.1 引言 528<br/>16.1.1 BIOS数据区 528<br/>16.2 使用INT 16h进行键盘输入 529<br/>16.2.1 键盘如何工作 530<br/>16.2.2 INT 16h功能 530<br/>16.2.3 本节回顾 534<br/>16.3 使用INT 10h进行视频编程 534<br/>16.3.1 基本背景 534<br/>16.3.2 控制颜色 536<br/>16.3.3 INT 10h视频功能 537<br/>16.3.4 库过程示例 546<br/>16.3.5 本节回顾 547<br/>16.4 使用INT 10h绘制图形 547<br/>16.4.1 INT 10h与像素有关的功能 548<br/>16.4.2 程序DrawLine 548<br/>16.4.3 笛卡尔坐标程序 550<br/>16.4.4 将笛卡尔坐标转换为屏幕坐标 552<br/>16.4.5 本节回顾 552<br/>16.5 内存映射的图形 553<br/>16.5.1 模式13h:320×200,256色 553<br/>16.5.2 内存映射图形程序 554<br/>16.5.3 本节回顾 556<br/>16.6 鼠标编程 557<br/>16.6.1 鼠标INT 33h功能 557<br/>16.6.2 鼠标跟踪程序 561<br/>16.6.3 本节回顾 565<br/>16.7 本章小结 565<br/>16.8 编程练习 566<br/>网络资源<br/>附录A MASM参考知识<br/>附录B x86指令集<br/>附录C BIOS和MS-DOS中断<br/>附录D “本节回顾”的问题答案(第14~16章)<br/>词汇表

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网