基本信息出版社:高等教育出版社
页码:313 页
出版日期:2007年12月
ISBN:7040178133
条形码:9787040178135
版本:第1版
装帧:平装
开本:16
正文语种:中文
丛书名:面向21世纪课程教材
内容简介 《汇编语言程序设计》以Pentium微处理器为主线,系统地介绍了汇编语言程序设计的基础知识、程序设计方法和应用技术。《汇编语言程序设计》由基础理论、编程工具、编程方法和实际应用4部分共11章组成。包括Pentium微处理器的基本体系结构;Pentium微处理器的指令格式、寻址方式、指令系统、伪指令和汇编语言程序格式;汇编语言进行程序设计的基本方法,包括顺序、分支、循环、子程序等基本程序结构、编程方法和技巧;输入输出、异常、中断程序设计、文件系统;在Pentium芯片支持下算术程序设计方法,Pentium系统程序设计方法等。在浮点运算和系统程序编制方面的扩充是《汇编语言程序设计》的特色。《汇编语言程序设计》内容丰富、充实,由浅入深,循序渐进的讲述方式适合于具有一定程序设计基础的初学者学习汇编语言程序设计方法。《汇编语言程序设计》可作为高等学校计算机科学与技术、通信工程、电气工程、自动化等专业“汇编语言程序设计”课程的教材,也可供自学者及从事计算机应用的工程技术人员使用、学习和参考。
编辑推荐 《汇编语言程序设计》为高等教育出版社出版。
目录
第一章 Pentium微处理器
1.1 计算机系统组成
1.1.1 硬件
1.1.2 软件
1.2 Intel系列CPU简介
1.2.1 Intel系列CPU发展简史
1.2.2 Pentium家族的其他成员
1.3 Pentium微处理器的基本结构
1.4 Pentium寄存器
1.4.1 基本结构寄存器
1.4.2 系统级寄存器
1.4.3 调试寄存器
1.4.4 模型专用寄存器
1.4.5 浮点处理部件
本章小结
习题一
第二章 Pentium微处理器指令系统
2.1 Pentium汇编语言汇编指令格式
2.2 Pcntium微处理器内部指令格式
2.2.1 前缀
2.2.2 操作码
2.2.3 寻址方式
2.2.4 位(偏)移量及立即数
2.3 寻址方式
2.3.1 数据的寻址方式
2.3.2 转移地址的寻址方式
2.3.3 堆栈地址寻址
2.4 指令系统
2.4.1 数据传送指令
2.4.2 算术运算指令
2.4.3 BCD码调整指令
2.4.4 逻辑运算指令
2.4.5 位处理指令
2.4.6 控制转移指令
2.4.7 条件设置指令
2.4.8 串操作指令
2.4.9 处理器控制指令
本章小结
习题二
第三章 Pentium宏汇编
3.1 Pentium汇编程序结构
3.1.1 程序
3.1.2 模块
3.1.3 段
3.1.4 语句
3.2 数据定义——数据段
3.2.1 标识符
3.2.2 数
3.2.3 字符串
3.2.4 符号常量
3.2.5 变量及变量说明
3.2.6 表达式
3.2.7 数组
3.3 堆栈定义——栈段
3.4 指令代码——代码段
3.4.1 段寄存器初值
3.4.2 程序定位
3.4.3 标号
3.4.4 程序启动地址和结束地址
3.4.5 处理器选择
3.5 段分组
3.6 简化段
3.6.1 存储模式
3.6.2 段定义
3.6.3 预定义符号
3.6.4 两点说明
3.6.5 实例
3.7 汇编语言程序上机过程
3.7.1 用EDIT建立.ASM文件
3.7.2 使用MASM产生.OBJ等文件
3.7.3 用LINK程序产生.EXE文件
3.8 可执行程序
3.8.1.COM文件
3.8.2.EXE文件
本章小结
习题三
第四章 汇编语言程序设计方法
4.1 顺序程序设计
4.2 分支程序设计
4.2.1 IF语句
4.2.2 CASE语句
4.3 循环程序设计
4.3.1 WHILE循环
4.3.2 REPEATUNTIL循环
4.3.3 FOR循环
4.3.4 循环嵌套
4.3.5 循环结构的限制
本章小结
习题四
第五章 子程序和宏
5.1 带子程序的程序
5.2 变量分配
5.2.1 在子程序代码段内分配
5.2.2 在数据段的公共数据区分配
5.2.3 在栈中分配
5.3 参数传递
5.3.1 值参数与变量参数
5.3.2 传送方式
5.3.3 子程序作参数
5.4 递归
5.5 栈的使用技巧与子程序的限制
5.6 可重入性
5.7 宏
5.7.1 宏定义和扩展
5.7.2 参数
5.7.3 算子
5.7.4 宏嵌套
5.7.5 涉及宏的伪指令
5.8 库
5.8.1 子程序库
5.8.2 宏库
5.8.3 宏与子程序的区别
本章小结
习题五
第六章 输入,输出程序设计
6.1 I/O寻址概述
6.1.1 I/O设备及其数据传送方式
6.1.2 I/O接口和I/O端口地址
6.2 I/o指令
6.2.1 寄存器I/O指令
6.2.2 块I/O指令
6.3 简单I/o程序设计
6.4 查询方式I/O程序
6.4.1 异步串行通信介绍
6.4.2 异步串行通信接口
6.4.3 I/O宏指令和端口定义
6.4.4 查询方式的串行I/O程序
本章小结
习题六
第七章 异常和中断
7.1 概述
7.1.1 异常和中断的概念
7.1.2 异常和中断的类型
7.1.3 向量号和中断向量表
7.1.4 优先级
7.2 异常和中断处理程序设计
7.2.1 异常和中断处理程序的一般结构
7.2.2 编写异常和中断处理程序
7.2.3 用户自行安排中断程序处理程序
7.3 BIOS中断程序设计
7.3.1 概述
7.3.2 利用BIOS中断控制键盘
7.3.3 利用BIOS中断控制显示
7.3.4 利用BIOS中断进行磁盘读写
7.4 DOS功能调用
7.4.1 键盘功能
7.4.2 显示功能
本章小结
习题七
第八章 文件系统
8.1 DOs文件系统概述
8.2 文件句柄方式操作
8.3 基本文件服务功能
8.3.1 建立文件
8.3.2 打开文件
8.3.3 关闭文件
8.3.4 读文件
8.3.5 写文件
8.3.6 文件指针操作
8.4 文件管理功能
8.4.1 删除文件
8.4.2 文件更名
8.4.3 取出/设置文件属性
8.4.4.文件查找
本章小结
习题八
第九章 浮点运算
9.1 数字协处理器和IEEE浮点数
9.1.1 IEEE浮点标准
9.1.2 其他数据格式
9.2 数字协处理器编程初步
9.2.1 寄存器结构
9.2.2 简单编程举例
9.2.3 整型数操作
9.3 浮点运算状态
9.4 浮点运算指令一览
本章小结
习题九
第十章 保护模式
10.1 Pentium指令系统的发展
10.2 保护模式简介
10.3 存储管理机制
10.4 保护机制
10.4.1 任务保护
10.4.2 输入/输出指令保护
10.5 中断与异常
10.6 操作系统指令
10.7 工作模式与模式切换
本章小结
习题十
第十一章 汇编语言高级技术
11.1 结构
11.1.1 结构的定义
11.1.2 结构变量的定义
11.1.3 结构变量及其字段的访问
11.2 记录
11.2.1 记录的定义
11.2.2 记录变量的定义及初始化
11.2.3 涉及记录的运算
11.2.4 访问记录或字段
11.3 条件汇编与重复汇编
11.3.1 条件汇编
11.3.2 重复汇编
11.4 多模块程序设计
11.4.1 模块化程序设计
11.4.2 模块的连接
11.4.3 模块之间的参数传送
11.5 汇编语言与高级语言的连接
11.5.1 概述
11.5.2 C语言程序与汇编语言程序连接时的系统规则
11.5.3 连接方法
本章小结
附录
附录一 ACSII字符集
附录二 键盘扫描码表
附录三 BIOs中断
附录四 DOS中断INT21H功能调用
参考文献
……
序言 汇编语言是一种介于机器语言和高级语言之间的计算机编程语言,它既不像机器语言那样直接使用计算机所认识和理解的二进制代码,也不像高级语言那样独立于硬件之外直接面向用户。汇编语言是计算机提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的语言,利用汇编语言可以编写出在空间和时间上都高效的程序。在很多需要直接控制硬件的场合,更是非用汇编语言不可。
当前绝大部分微型机使用Intel体系结构的微处理器,这种体系结构的微处理器目前已经发展到Pentium,因此Pentium汇编语言程序设计已经成为计算机科学与技术专业的一门重要课程。
目前,全国高等教育正处于教学改革的时期,新的教学思路、新的课程体系和教学内容正在形成。结合21世纪计算机科学与技术专业课程改革的基本思路,在多年教学实践的基础上,我们编写了《Pentium汇编语言程序设计》,它是教育部《高等教育面向21世纪教学内容和课程体系改革计划》的研究成果之一。
本书以Pentium微处理器为基础,系统地介绍Pentium微处理器的编程结构、指令系统、汇编语言程序设计的基础知识、程序设计方法和应用技术。在浮点运算和系统程序编制方面的扩充是本书的特色。
文摘 插图:

10.2保护模式简介
保护模式不仅可以充分发挥CPU的计算能力,扩展寻址范围,更重要的是保护模式提供了一系列硬件支持,相应的CPU也提供了硬件实现机制,来保证现代操作系统和应用程序的需要。由于从80386开始在后续的80486及Pentium等CPU中,保护模式基本相同,因此为行文方便,在很多资料中都称为386保护模式,例如,在Windows NT的手册和文件目录中称i386保护模式,虽然Windows NT并不能在80386下运行,只能在80486以上机型运行。
最原始的以DOS为代表的操作系统,是单用户、单进程的。也就是说,在一个时刻只能有一个应用程序在运行。虽然可以使用各种技术在后台装载一些程序,但是这些程序和操作系统共享一套内存。也就是说,各个程序都可以访问某一个相同内存地址。因此某个程序的崩溃很容易导致整个操作系统的崩溃。在这种方式下,系统的所有软硬件资源对应用程序都是可见的,也都是可操作的,由此给系统带来了很大的不安全性。
现代操作系统,如UNIx和Windows都是多用户、多进程的,可以同时运行多个应用程序。站在每个应用程序角度看,它们都使用一致的地址空间,但是实际上操作系统把不同程序的内存空间映射到不同的物理内存上,以保证互不冲突。原则上应用程序之间不能互相访问,也不能访问操作系统的内存,一个进程的崩溃不能导致整个系统的崩溃。另外,对于很多特定硬件,应用程序不应该直接访问,而应该通过相应的操作系统调用来完成。如果应用程序有意或无意地试图违反上述约定,则产生异常中断,转入操作系统进行处理。另外,虽然32位处理器可以提供高达4 GB的内存空间,但计算机硬件不一定配备这么大数量的内存,同时多个应用程序加上操作系统使用的内存容量总和也完全可能超过实际内存数量,甚至超过4 GB,因此引入了虚拟内存机制。虽然虚拟内存机制的实现主要由操作系统来完成,但是处理器必须提供相应的支持。
综上所述,在保护模式下,要提供的硬件机制包括存储管理机制、任务保护机制、中断和异常机制、I/O等特权指令管理以及提供进程切换、运行模式切换的支持。下面就从这几个方面来介绍Pentium保护模式。