Intel汇编语言程序设计: Intel汇编语言程序设计
Book information
Description
《国外计算机科学教材系列•Intel汇编语言程序设计(第5版)》全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口编程;从16位实模式下BIOS、DOS实模式文本及图形程序设计到32位保护模式的Windows程序设计;从磁盘基础知识到Intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。 封面 书名 版权 前言 目录 第1章 基本概念 1.1 欢迎来到汇编语言的世界 1.1.1 一些精彩的提问 1.1.2 汇编语言应用程序 1.1.3 本节习题 1.2 虚拟机的概念 1.2.1 PC汇编编译器的历史 1.2.2 本节习题 1.3 数据的表示方法 1.3.1 二进制数 1.3.2 二进制加法 1.3.3 整数存储的尺寸 1.3.4 十六进制整数 1.3.5 有符号整数 1.3.6 字符的存储 1.3.7 本节习题 1.4 布尔运算 1.4.1 布尔函数的真值表 1.4.2 本节习题 1.5 本章小结 第2章 IA-32处理器体系结构 2.1 基本概念 2.1.1 微机的基本结构 2.1.2 指令执行周期 2.1.3 内存的读取 2.1.4 程序是如何运行的 2.1.5 本节习题 2.2 IA-32处理器体系结构 2.2.1 操作模式 2.2.2 基本执行环境 2.2.3 浮点单元 2.2.4 Intel微处理器的历史 2.2.5 本节习题 2.3 IA-32的内存管理 2.3.1 实地址模式 2.3.2 保护模式 2.3.3 本节习题 2.4 IA-32微机的构成 2.4.1 主板 2.4.2 视频输出 2.4.3 存储器 2.4.4 输入输出接口 2.4.5 本节习题 2.5 输入输出系统 2.5.1 所有这一切是如何工作的 2.5.2 本节习题 2.6 本章小结 第3章 汇编语言基础 3.1 汇编语言的基本元素 3.1.1 整数常量 3.1.2 整数表达式 3.1.3 实数常量 3.1.4 字符常量 3.1.5 字符串常量 3.1.6 保留字 3.1.7 标识符 3.1.8 伪指令 3.1.9 指令 3.1.10 NOP(空操作)指令 3.1.11 本节习题 3.2 例子:整数相加减 3.2.1 AddSub的另一个版本 3.2.2 程序模板 3.2.3 本节习题 3.3 汇编、链接和运行程序 3.3.1 汇编-链接-执行 3.3.2 本节习题 3.4 定义数据 3.4.1 内部数据类型 3.4.2 数据定义语句 3.4.3 定义BYTE和SBYTE数据 3.4.4 定义WORD和SWORD数据 3.4.5 定义DWORD和SDWORD数据 3.4.6 定义QWORD数据 3.4.7 定义TBYTE数据 3.4.8 定义实数 3.4.9 小尾顺序 3.4.10 为AddSub程序添加变量 3.4.11 未初始化数据的声明 3.4.12 本节习题 3.5 符号常量 3.5.1 等号伪指令 3.5.2 计算数组和字符串的大小 3.5.3 EQU伪指令 3.5.4 TEXTEQU伪指令 3.5.5 本节习题 3.6 实地址模式程序设计(可选) 3.6.1 基本的修改 3.7 本章小结 3.8 编程练习 第4章 数据传送、寻址和算术运算 4.1 数据传送指令 4.1.1 简介 4.1.2 操作数类型 4.1.3 直接内存操作数 4.1.4 MOV指令 4.1.5 整数的零/符号扩展 4.1.6 LAHF和SAHF指令 4.1.7 XCHG指令 4.1.8 直接偏移操作数 4.1.9 例子程序(数据传送) 4.1.10 本节习题 4.2 加法和减法 4.2.1 INC和DEC指令 4.2.2 ADD指令 4.2.3 SUB指令 4.2.4 NEG指令 4.2.5 实现算术表达式 4.2.6 加法和减法影响的标志 4.2.7 例子程序(AddSub3) 4.2.8 本节习题 4.3 和数据相关的操作符和伪指令 4.3.1 OFFSET操作符 4.3.2 ALIGN伪指令 4.3.3 PTR操作符 4.3.4 TYPE操作符 4.3.5 LENGTHOF操作符 4.3.6 SIZEOF操作符 4.3.7 LABEL伪指令 4.3.8 本节习题 4.4 间接寻址 4.4.1 间接操作数 4.4.2 数组 4.4.3 变址操作数 4.4.4 指针 4.4.5 本节习题 4.5 JMP和LOOP指令 4.5.1 JMP指令 4.5.2 LOOP指令 4.5.3 整数数组求和 4.5.4 复制字符串 4.5.5 本节习题 4.6 本章小结 4.7 编程练习 第5章 过程 5.1 简介 5.2 与外部库链接 5.2.1 背景知识 5.2.2 本节习题 5.3 本书附带的链接库 5.3.1 概述 5.3.2 过程的描述 5.3.3 库测试程序 5.3.4 本节习题 5.4 堆栈操作 5.4.1 运行时栈 5.4.2 PUSH和POP指令 5.4.3 本节习题 5.5 过程的定义和使用 5.5.1 PROC伪指令 5.5.2 CALL和RET指令 5.5.3 例子:对整数数组求和 5.5.4 流程图 5.5.5 保存和恢复寄存器 5.5.6 本节习题 5.6 使用过程进行程序设计 5.6.1 整数求和程序(设计) 5.6.2 整数求和程序的实现 5.6.3 本节习题 5.7 本章小结 5.8 编程练习 第6章 条件处理 6.1 简介 6.2 布尔和比较指令 6.2.1 CPU的状态标志 6.2.2 AND指令 6.2.3 OR指令 6.2.4 XOR指令 6.2.5 NOT指令 6.2.6 TEST指令 6.2.7 CMP指令 6.2.8 设置和清除单个CPU状态标志 6.2.9 本节习题 6.3 条件跳转 6.3.1 条件结构 6.3.2 条件跳转(Jcond)指令 6.3.3 条件跳转指令的类型 6.3.4 条件跳转的应用 6.3.5 位测试指令(可选) 6.3.6 本节习题 6.4 条件循环指令 6.4.1 LOOPZ和LOOPE指令 6.4.2 LOOPNZ和LOOPNE指令 6.4.3 本节习题 6.5 条件结构 6.5.1 IF块结构语句 6.5.2 复合表达式 6.5.3 WHILE循环 6.5.4 以表格驱动的分支选择 6.5.5 本节习题 6.6 应用:有限状态机 6.6.1 输入字符串的验证 6.6.2 有符号整数的验证 6.6.3 本节习题 6.7 决策伪指令 6.7.1 有符号比较和无符号比较 6.7.2 复合表达式 6.7.3 REPEAT和.WHILE伪指令 6.8 本章小结 6.9 编程练习 第7章 整数算术指令 7.1 简介 7.2 移位和循环移位指令 7.2.1 逻辑移位和算术移位 7.2.2 SHL指令 7.2.3 SHR指令 7.2.4 SAL和SAR指令 7.2.5 ROL指令 7.2.6 ROR指令 7.2.7 RCL和RCR指令 7.2.8 符号溢出 7.2.9 SHLD/SHRD指令 7.2.10 本节习题 7.3 移位和循环移位的应用 7.3.1 多双字移位 7.3.2 二进制乘法 7.3.3 显示二进制数的数据位 7.3.4 分离MS-DOS文件的各个日期域 7.3.5 本节习题 7.4 乘法和除法指令 7.4.1 MUL指令 7.4.2 IMUL指令 7.4.3 乘法操作的基准(性能)测试 7.4.4 DIV指令 7.4.5 有符号整数除法 7.4.6 算术表达式的实现 7.4.7 本节习题 7.5 扩展加法和减法 7.5.1 ADC指令 7.5.2 扩展加法的例子 7.5.3 SBB指令 7.5.4 本节习题 7.6 ASCII和未压缩十进制算术指令 7.6.1 AAA指令 7.6.2 AAS指令 7.6.3 AAM指令 7.6.4 AAD指令 7.6.5 本节习题 7.7 压缩十进制算术指令 7.7.1 DAA指令 7.7.2 DAS指令 7.7.3 本节习题 7.8 本章小结 7.9 编程练习 第8章 高级过程 8.1 简介 8.2 堆栈框架 8.2.1 堆栈参数 8.2.2 局部变量 8.2.3 ENTER和LEAVE指令 8.2.4 LOCAL伪指令 8.2.5 过程WriteStackFrame 8.2.6 本节习题 8.3 递归 8.3.1 递归求和 8.3.2 计算阶乘 8.3.3 本节习题 8.4 MODEL伪指令 8.4.1 语言选项关键字 8.4.2 本节习题 8.5 INVOKE,ADDR,PROC和PROTO(可选) 8.5.1 INVOKE伪指令 8.5.2 ADDR操作符 8.5.3 PROC伪指令 8.5.4 PROTO伪指令 8.5.5 参数分类 8.5.6 例子:交换两个整数 8.5.7 调试疑难提示 8.5.8 本节习题 8.6 创建多模块程序 8.6.1 过程名的隐藏和导出 8.6.2 调用外部过程 8.6.3 跨越模块的边界使用变量和符号 8.6.4 例子:ArraySum程序 8.6.5 使用ENTERN创建模块 8.6.6 使用INVOKE和PROTO创建模块 8.6.7 本节习题 8.7 本章小结 8.8 编程练习 第9章 字符串和数组 9.1 简介 9.2 基本字符串操作指令 9.2.1 MOVSB,MOVSW和MOVSD指令 9.2.2 CMPSB,CMPSW和CMPSD指令 9.2.3 SCASB,SCASW和SCASD指令 9.2.4 STOSB,STOSW和STOSD指令 9.2.5 LODSB,LODSW和LODSD指令 9.2.6 本节习题 9.3 精选的字符串过程 9.3.1 Str_compare过程 9.3.2 Str_length过程 9.3.3 Str_copy过程 9.3.4 Str_trim过程 9.3.5 Str_ucase过程 9.3.6 字符串库演示程序 9.3.7 本节习题 9.4 二维数组 9.4.1 行和列的顺序 9.4.2 基址变址操作数 9.4.3 相对基址变址操作数 9.4.4 本节习题 9.5 整数数组的查找和排序 9.5.1 冒泡排序法 9.5.2 二分查找 9.5.3 本节习题 9.6 本章小结 9.7 编程练习 第10章 结构和宏 10.1 结构 10.1.1 定义结构 10.1.2 声明结构变量 10.1.3 引用结构变量 10.1.4 例子:显示系统时间 10.1.5 结构的嵌套 10.1.6 例子:醉汉走路 10.1.7 联合的声明和使用 10.1.8 本节习题 10.2 宏 10.2.1 概述 10.2.2 宏的定义 10.2.3 宏的调用 10.2.4 宏的其他特性 10.2.5 使用本书附带的宏库 10.2.6 例子程序:封装 10.2.7 本节习题 10.3 条件汇编伪指令 10.3.1 检查缺少的参数 10.3.2 默认的参数初始化值 10.3.3 布尔表达式 10.3.4 IF,ELSE和ENDIF伪指令 10.3.5 IFIDN和IFIDNI伪指令 10.3.6 例子:对矩阵行求和 10.3.7 特殊操作符 10.3.8 宏函数 10.3.9 本节习题 10.4 定义重复块 10.4.1 WHILE伪指令 10.4.2 REPEAT伪指令 10.4.3 FOR伪指令 10.4.4 FORC伪指令 10.4.5 例子:链表 10.4.6 本节习题 10.5 本章小结 10.6 编程练习 第11章 MS-Windows程序设计 11.1 Win32控制台编程 11.1.1 背景知识 11.1.2 Win32控制台函数 11.1.3 显示消息框 11.1.4 控制台输入 11.1.5 控制台输出 11.1.6 文件的读写 11.1.7 Irvine32库的文件I/O过程 11.1.8 测试文件I/O过程 11.1.9 控制台窗口的操作 11.1.10 光标的控制 11.1.11 文本颜色的控制 11.1.12 时间和日期函数 11.1.13 本节习题 11.2 编写Windows图形界面应用程序 11.2.1 必须了解的数据结构 11.2.2 MessageBox函数 11.2.3 WinMain过程 11.2.4 WinProc过程 11.2.5 ErrorHandler过程 11.2.6 程序清单 11.2.7 本节习题 11.3 动态内存分配 11.3.1 堆测试程序 11.3.2 本节习题 11.4 IA-32内存管理 11.4.1 线性地址 11.4.2 页面地址转换 11.4.3 本节习题 11.5 本章小结 11.6 编程练习 第12章 高级语言接口 12.1 简介 12.1.1 约定 12.1.2 本节习题 12.2 内联汇编代码 12.2.1 Microsoft Visual C++中的__asm伪指令 12.2.2 文件加密的例子 12.2.3 本节习题 12.3 在保护模式下与C++程序链接 12.3.1 使用汇编语言优化C++代码 12.3.2 调用C和C++函数 12.3.3 乘法表的例子 12.3.4 调用C库函数 12.3.5 目录列表程序 12.3.6 本节习题 12.4 在实地址模式下与C/C++程序链接 12.4.1 与Borland C++程序链接 12.4.2 例子:ReadSector 12.4.3 例子:大随机整数 12.4.4 本节习题 12.5 本章小结 12.6 编程练习 第13章 16位MS-DOS程序设计 13.1 MS-DOS和IBM-PC 13.1.1 内存组织 13.1.2 重定向输入输出 13.1.3 软件中断 13.1.4 INT指令 13.1.516 位程序的编写 13.1.6 本节习题 13.2 MS-DOS功能调用(INT 21h) 13.2.1 精选的输出功能调用 13.2.2 例子程序:Hello World 13.2.3 精选的输入功能调用 13.2.4 日期/时间功能调用 13.2.5 本节习题 13.3 标准MS-DOS文件I/O服务 13.3.1 创建或打开文件(716Ch) 13.3.2 关闭文件句柄(3Eh) 13.3.3 移动文件指针(42h) 13.3.4 获取文件创建的日期和时间 13.3.5 精选的库例程 13.3.6 例子:读取并复制文本文件 13.3.7 读取MS-DOS命令行 13.3.8 例子:创建二进制文件 13.3.9 本节习题 13.4 本章小结 13.5 练习题 第14章 磁盘基础知识 14.1 磁盘存储系统 14.1.1 磁道、柱面和扇区 14.1.2 磁盘分区(卷) 14.1.3 本节习题 14.2 文件系统 14.2.1 FAT12 14.2.2 FAT16 14.2.3 FAT32 14.2.4 NTFS 14.2.5 磁盘的基本区域 14.2.6 本节习题 14.3 磁盘目录 14.3.1 MS-DOS目录结构 14.3.2 MS-Windows中的长文件名 14.3.3 文件分配表(FAT) 14.3.4 本节习题 14.4 读写磁盘扇区(7305h) 14.4.1 扇区显示程序 14.4.2 本节习题 14.5 系统级文件功能调用 14.5.1 获取磁盘剩余空间(7303h) 14.5.2 创建子目录(39h) 14.5.3 删除子目录(3Ah) 14.5.4 设置当前目录(3Bh) 14.5.5 获取当前目录(47h) 14.5.6 获取/设置文件属性(7143h) 14.5.7 本节习题 14.6 本章小结 14.7 编程练习 第15章 BIOS程序设计 15.1 简介 15.1.1 BIOS数据区 15.2 INT 16h键盘中断 15.2.1 键盘是如何工作的 15.2.2 INT 16h功能调用 15.2.3 本节习题 15.3 INT 10h视频程序设计 15.3.1 背景知识 15.3.2 色彩的控制 15.3.3 INT 10h视频功能调用 15.3.4 库过程中的例子 15.3.5 本节习题 15.4 使用INT 10h绘图 15.4.1 和像素相关的INT 10h功能调用 15.4.2 画线程序 15.4.3 笛卡儿坐标程序 15.4.4 把笛卡儿坐标转换为屏幕坐标 15.4.5 本节习题 15.5 内存映射图形 15.5.1 模式13h:320×200,256色 15.5.2 内存映射图形程序 15.5.3 本节习题 15.6 鼠标程序设计 15.6.1 鼠标INT 33h功能调用 15.6.2 鼠标跟踪程序 15.6.3 本节习题 15.7 本章小结 15.8 练习题 第16章 高级MS-DOS程序设计 16.1 简介 16.2 定义段 16.2.1 简化段定义伪指令 16.2.2 显式段定义 16.2.3 段超越前缀 16.2.4 段的组合 16.2.5 本节习题 16.3 程序的运行时结构 16.3.1 程序段前缀 16.3.2 COM程序 16.3.3 EXE程序 16.3.4 本节习题 16.4 中断处理 16.4.1 硬件中断 16.4.2 中断控制指令 16.4.3 编写中断处理例程 16.4.4 内存驻留程序 16.4.5 应用:程序No_Reset 16.4.6 本节习题 16.5 使用I/O端口控制硬件 16.5.1 输入输出端口 16.5.2 PC声音程序 16.6 本章小结 第17章 浮点处理和指令编码 17.1 浮点二进制表示 17.1.1 IEEE二进制浮点数的表示 17.1.2 指数 17.1.3 二进制浮点数的正规化 17.1.4 IEEE表示法 17.1.5 把十进制分数转换为二进制实数 17.1.6 本节习题 17.2 浮点单元 17.2.1 浮点寄存器栈 17.2.2 近似 17.2.3 浮点异常 17.2.4 浮点指令集 17.2.5 算术运算指令 17.2.6 浮点值的比较 17.2.7 读写浮点值 17.2.8 异常的同步 17.2.9 代码示例 17.2.10 混合模式算术运算 17.2.11 屏蔽和未屏蔽的异常 17.2.12 本节习题 17.3 Intel指令编码 17.3.1 IA-32指令的格式 17.3.2 单字节指令 17.3.3 立即操作数送寄存器 17.3.4 寄存器模式指令 17.3.5 IA-32的操作数尺寸前缀 17.3.6 内存模式指令 17.3.7 本节习题 17.4 本章小结 17.5 编程练习 附录A MASM参考手册 附录B IA-32 指令集 附录C BIOS和MS-DOS中断 附录D 习题答案
Similar books
Intel汇编语言程序设计: Intel汇编语言程序设计
2007 · PDF
Starting Out With Visual Basic
2017 · PDF
Starting out with Visual Basic
2016 · PDF
Starting Out With Visual Basic 2012
2013 · PDF
Assembly Language for x86 Processors (6th Edition)
2010 · PDF
中国建筑西南设计研究院:成都嘉煜金融科技中心方案深化设计(高新区名都路166号)
2012 · PDF
尤安设计:北京市朝阳区 望京绿地中心-A座 深化设计文本( 启阳路)【超高层办公楼】
2011 · PDF
鏖战北海:挪威战役
2023 · PDF