<p>《国外计算机科学教材系列•Intel汇编语言程序设计(第5版)》全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口编程;从16位实模式下BIOS、DOS实模式文本及图形程序设计到32位保护模式的Windows程序设计;从磁盘基础知识到Intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。</p>
Intel汇编语言程序设计: Intel汇编语言程序设计
✍ Scribed by Kip Irvine
- Publisher
- 电子工业出版社
- Year
- 2007
- Tongue
- Chinese
- Leaves
- 690
- Series
- 国外计算机科学教材系列
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
《国外计算机科学教材系列•Intel汇编语言程序设计(第5版)》全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口编程;从16位实模式下BIOS、DOS实模式文本及图形程序设计到32位保护模式的Windows程序设计;从磁盘基础知识到Intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。
✦ Table of Contents
封面
书名
版权
前言
目录
第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 VOLUMES
《汇编语言程序设计》以经典的Intel 8086/8088CPU指令系统与Microsoft宏汇编为背景,系统地介绍了汇编语言程序设计的基本理论和方法。 《汇编语言程序设计》共十二章,前九章主要内容包括:宏汇编语言程序设计的基础知识、指令系统、常用伪指令、汇编语言语法规则和程序设计方法、子程序与多模块编程、宏功能程序设计。后三章主要介绍了8086、8088汇编语言的应用,包括输入输出程序设计、中断的基本概念及其开发应用技巧、文件操作编程方法等内容。 为方便自学,在重点章节后面增加了理解与练习,通过例题分析,加强对汇编语言的理解与掌握。本书可作为高校计算机本科专业的教材及相关专业本科生的教材,也
<p>《汇编语言程序设计》讲述每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码十分有用。</p>
<p>本书主要阐述80X86汇编语言程序设计方法和技术。全书共分四部分:第1章和第2章为基础知识部分;第3章和第4章为编程工具部分,主要内容为80X86的指令系统与寻址方式,以及包括伪操作在内的汇编语言程序格式;第5章-第9章说明编程方法,内容包括循环、分支、子程序等基本程序结构,程序设计的基本方法和技术,多模块连接技术,宏汇编技术,以中断为主的输入输出程序设计方法,以及BIOS和DOS系统功能调用;第10章和第11章为实际应用部分,说明图形显示、发声和磁盘文件存取技术。全书提供了大量程序实例,每章后均附有习题。</p> <p>本书在是1991年第1版的基础上,融会了10年来教学与科研的新成
本书讲授Intel 8086微处理器的指令系统,并以Microsoft的MASM 5.0版本宏汇编语言为基础,讲授汇编语言程序设计的基本方法和常用技术。 全书共分5章。第1章讲授学习汇编语言程序设计所需具备的基础知识,包括指令的概念、数据的表示、数据的存储和处理等;第2章讲授8086宏汇编语言的源程序组成,包括汇编语言的语言成分,常量、变量、标号等的定义,源程序的结构及定义等;第3章讲授8086的指令系统,包括寻址方式和各类操作指令等;第4章讲授8086汇编语言程序设计的基本方法,包括顺序程序、分支程序、循环程序、子程序、宏指令等;第5章介绍8086的中断技术,包括中断的相关概念,中断服务程序
<p>《汇编语言程序设计》内容主要包括微机基础知识,Intel 8086/8088指令系统,Intel 80x86、Pentium增强和扩展指令,程序设计方法,高级汇编技术,系统功能调用,汇编语言与C/C++的混合编程技术,上机操作方法。在程序设计各章中在给出一般例题的基础上,特别设置了综合举例章节;在系统功能调用、汇编语言与C/C++的混合编程两章中更特地设置了实例章节。每章附有习题,书后附有上机实验指导。《汇编语言程序设计》可作为高等学校、高等职业学校计算机专业或相近专业汇编语言程序设计课程教材,微型计算机原理课程辅助教材,亦可供软件开发人员参考。</p>