• 正版现货新书 汇编语言程序设计教程(第4版21世纪高等学校计算机专业核心课程规划教材) 9787302437420 卜艳萍、周伟
21年品牌 40万+商家 超1.5亿件商品

正版现货新书 汇编语言程序设计教程(第4版21世纪高等学校计算机专业核心课程规划教材) 9787302437420 卜艳萍、周伟

全新正版现货,以书名为准,放心购买,购书咨询18931383650朱老师

30.97 7.8折 39.5 全新

库存8件

北京丰台
认证卖家担保交易快速发货售后保障

作者卜艳萍、周伟

出版社清华大学出版社

ISBN9787302437420

出版时间2016-11

装帧平装

开本16开

定价39.5元

货号24106613

上书时间2024-10-24

黎明书店

十四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言
前言

计算机技术及电子技术的迅猛发展,使得人们的学习、工作、生活越来越离不开计算机,计算机知识及其应用技能已经成为人类知识结构的重要组成部分。微型计算机技术的发展,不断涌现新技术、新产品。本书以IBM PC作为背景,系统地介绍微机原理的基础知识及汇编语言程序设计的方法和技术。本次再版在前三版《汇编语言程序设计教程》的基础上,修改并增加了部分内容。在教材编写过程中,参照了国内多所高校本科“汇编语言程序设计”课程的教学大纲,兼顾相关专业的教学要求和特点,并充分考虑到了微型机技术的发展、教学方法的完善以及教学手段的改进等因素。全书共分10章。第1章和第2章介绍汇编语言基础知识和微型计算机的体系结构; 第3章详细介绍IBM PC的寻址方式和指令系统; 第4章介绍伪指令、汇编语言程序格式等知识; 第5章讲述典型汇编语言程序结构的设计方法; 第6章详细介绍子程序设计及参数传递的方法。第7章介绍输入/输出程序设计技术和方法; 第8章介绍宏汇编、重复汇编和条件汇编等高级汇编技术; 第9章讲述DOS功能调用和BIOS功能调用知识,通过大量程序设计实例分析系统功能调用的实现; 第10章是汇编语言上机环境及程序设计实例分析,给出学生上机练习的要求。本书每章后均有思考与练习,可以作为巩固相关知识的课后作业。第5~10章有大量的例程分析,以帮助学生掌握汇编语言程序设计的步骤和方法。在附录部分提供了DOS功能调用、BIOS功能调用和80x86指令系统的汇总,供读者学习过程中查阅。本书由上海交通大学卜艳萍老师和华东理工大学周伟老师共同编著。周伟编写第5~8章、第10章和附录A。卜艳萍编写第1~4章、第9章、附录B和附录C,并负责全书的统稿工作。由于编者水平有限及时间仓促,书中不妥之处,敬请读者批评指正。作者联系邮箱: ypbu@sjtu.edu.cn。
作者2016年5月

导语摘要
   本书以IBM PC机型和80x86指令系统为对象,全面而系统地介绍微型计算机系统的结构及汇编语言程序设计的方法。全书由10章组成。第1章和第2章介绍汇编语言基础知识和微型计算机的体系结构; 第3章详细介绍IBM PC的寻址方式和指令系统; 第4章介绍伪指令、汇编语言程序格式等知识; 第5章讲述典型汇编语言程序结构的设计方法; 第6章详细介绍子程序设计及参数传递的方法; 第7章介绍输入/输出程序设计技术和方法; 第8章介绍宏汇编、重复汇编和条件汇编等高级汇编技术; 第9章讲述DOS功能调用和BIOS功能调用知识; 第10章是汇编语言上机环境及程序设计实例分析。本书可作为普通高等院校本科和应用型本科计算机及相关专业学生的教学用书,也可作为从事计算机应用的工程技术人员的参考用书。

目录
目录

第1章汇编语言基础知识
1.1计算机基础知识
1.1.1计算机的发展史
1.1.2计算机的特性
1.1.3计算机的分类与应用
1.1.4计算机的主要技术指标
1.2计算机的基本结构与组成
1.2.1计算机的硬件
1.2.2计算机的软件
1.2.3计算机的程序设计语言
1.2.4计算机系统的层次结构
1.3计算机中的数制与码制
1.3.1数制及数制转换
1.3.2机器数的编码
1.3.3定点数与浮点数
1.3.4码制
思考与练习
第2章微型计算机体系结构
2.180x86微处理器
2.1.18086/8088的功能结构
2.1.28086/8088的寄存器组织
2.1.38086/8088的存储器组织
2.1.480x86微处理器的发展
2.2IA32 CPU
2.2.1IA32 CPU功能结构
2.2.2IA32 CPU寄存器组
2.2.3IA32 CPU存储器管理
2.3先进的微处理器
2.3.1高档Pentium微处理器
2.3.2迅驰技术
2.3.3多核技术
2.3.4专用微处理器
2.3.5微处理器领域的架构革命
思考与练习
第3章微型计算机的指令系统
3.1寻址方式
3.1.1操作数的种类
3.1.28086/8088的机器代码格式
3.1.3与数据有关的寻址方式
3.1.4与转移地址有关的寻址方式
3.28086/8088指令系统
3.2.1数据传送类指令
3.2.2算术运算类指令
3.2.3逻辑操作类指令
3.2.4程序控制类指令
3.2.5串操作类指令
3.2.6处理器控制类指令
3.2.7输入/输出类指令
3.380x86指令系统介绍
3.3.180x86寻址方式
3.3.280286指令系统新增指令
3.3.380386指令系统新增指令
3.3.480486指令系统新增指令
3.3.5Pentium指令系统新增指令
思考与练习

第4章伪指令与汇编语言程序结构设计
4.1汇编语言语句类型和格式
4.2伪指令
4.2.1表达式赋值伪指令
4.2.2数据定义伪指令
4.2.3LABEL伪指令
4.2.4段定义伪指令
4.2.5简化段定义伪指令
4.2.6过程定义伪指令
4.2.7模块命名、通信等伪指令
4.3汇编语言源程序结构
4.3.1完整段定义结构
4.3.2简化段定义结构
4.3.3程序段前缀结构
4.3.4可执行程序结构
思考与练习

第5章汇编语言程序设计
5.1汇编语言程序设计概述
5.2顺序程序设计
5.3分支程序设计
5.3.1双分支结构程序设计
5.3.2多分支结构程序设计
5.4循环程序设计
5.4.1简单循环程序设计
5.4.2多重循环程序设计
思考与练习

第6章子程序设计
6.1子程序的定义与调用
6.1.1子程序的定义
6.1.2子程序的调用
6.2子程序的参数传递方法
6.2.1通过寄存器传递参数
6.2.2通过堆栈传递参数
6.2.3通过内存单元传递参数
6.3子程序的嵌套与递归
6.3.1子程序的嵌套调用
6.3.2子程序的递归调用
思考与练习

第7章输入/输出程序设计
7.1微机接口技术概述
7.2输入/输出的控制方式
7.2.1程序查询传送方式
7.2.2中断传送方式
7.2.3DMA传送方式
7.3输入/输出综合应用程序举例
思考与练习

第8章高级汇编技术
8.1宏汇编
8.1.1宏定义与宏调用
8.1.2宏汇编实例分析
8.1.3宏嵌套
8.2重复汇编与条件汇编
8.2.1重复汇编
8.2.2条件汇编
8.3复杂数据结构
8.3.1结构
8.3.2记录
8.4模块化程序设计
8.4.1宏库的使用
8.4.2源程序的包含文件
8.4.3目标代码文件的连接
思考与练习

第9章DOS/BIOS功能调用
9.1概述
9.2DOS功能调用
9.2.1DOS功能调用概述
9.2.2DOS功能调用程序实例
9.3BIOS功能调用
9.3.1BIOS功能调用概述
9.3.2BIOS功能调用程序实例
9.3.3显示器BIOS中断服务
9.4综合应用程序设计举例
思考与练习

第10章汇编语言上机环境及程序设计实例
10.1汇编语言程序设计上机实验相关知识
10.1.1汇编程序
10.1.2DEBUG命令的使用
10.1.3汇编错误信息
10.2微型计算机操作系统介绍
10.2.1微型机操作系统MSDOS
10.2.2微型机操作系统Windows
10.3程序设计实例分析及实验任务
10.3.1顺序程序设计
10.3.2分支程序设计
10.3.3循环程序设计
10.3.4子程序设计
10.3.5系统功能调用
10.4调试程序CodeView的使用
10.5汇编语言与C/C  的混合编程
10.6软件逆向工程与反汇编
思考与练习
附录ADOS功能调用(INT 21H)
附录BBIOS功能调用
附录C80x86指令系统一览表
参考文献

内容摘要
   本书以IBM PC机型和80x86指令系统为对象,全面而系统地介绍微型计算机系统的结构及汇编语言程序设计的方法。全书由10章组成。第1章和第2章介绍汇编语言基础知识和微型计算机的体系结构; 第3章详细介绍IBM PC的寻址方式和指令系统; 第4章介绍伪指令、汇编语言程序格式等知识; 第5章讲述典型汇编语言程序结构的设计方法; 第6章详细介绍子程序设计及参数传递的方法; 第7章介绍输入/输出程序设计技术和方法; 第8章介绍宏汇编、重复汇编和条件汇编等高级汇编技术; 第9章讲述DOS功能调用和BIOS功能调用知识; 第10章是汇编语言上机环境及程序设计实例分析。
本书可作为普通高等院校本科和应用型本科计算机及相关专业学生的教学用书,也可作为从事计算机应用的工程技术人员的参考用书。

主编推荐
     充分考虑微型机技术的发展、教学方法的完善以及教学手段的改进等因素,系统地介绍微机原理的基础知识及汇编语言程序设计的方法和技术。
    提供大量的例程分析,帮助学生掌握汇编语言程序设计的步骤和方法。
    提供汇编语言程序设计上机实验指导、实例分析及学生上机练习作业的要求。
    每章均有思考与练习题,可以作为巩固相关知识的课后作业。 

精彩内容
第3章微型计算机的指令系统
计算机是通过执行指令序列来解决问题的,每种计算机都有一套指令集合供用户使用。在微型计算机中,微处理器能执行的各种指令的集合称为指令系统。微处理器的主要功能是由它的指令系统来体现的。在其他条件相同的情况下,指令系统越强,机器的功能也就越强。不同的微处理器有不同的指令系统,其中每一条指令对应着处理器的一种基本操作。计算机只能识别由二进制编码表示的指令,称为机器指令。一条机器指令应包含两部分内容,其一般格式为: 
操作码操作数
操作码部分指出此指令要完成何种操作; 操作数部分则指出参与操作的对象是什么。在指令中可以直接给出操作数的值或者操作数存放在何处,操作的结果应送往何处等信息。处理器可根据指令字中给出的地址信息求出存放操作数的地址,称为有效地址(Effective Address,EA),然后对存放在有效地址中的操作数进行存取操作。3.1寻 址 方 式根据操作数的种类,8086/8088指令系统的寻址方式分为两大类: 数据寻址方式和转移地址寻址方式。3.1.1操作数的种类在8086/8088指令系统中,操作数可分为数据操作数和转移地址操作数两大类。1. 数据操作数数据操作数是指指令中操作的对象是数据。数据操作数的类型有以下几种。(1) 立即数操作数: 指令中要操作的数据在指令中。(2) 寄存器操作数: 指令中要操作的数据存放在指定的寄存器中。(3) 存储器操作数: 指令中要操作的数据存放在指定的存储单元中。(4) I/O操作数: 指令中要操作的数据来自或送到I/O端口。对于数据操作数,有的指令只有一个操作数或没有操作数。而有的指令有两个操作数,一个称为源操作数,在操作过程中保持原值不变; 另一个称为目标操作数,操作后一般被操作结果所替代。另外,还有一种隐含操作数。这种操作数从指令格式上看,好像是没有操作数,或只有一个操作数,实际上隐含了一个或两个操作数。2. 地址操作数地址操作数是指指令中操作的对象是地址。其指令只有一个目标操作数,该操作数不是普通数据,而是要转移的目标地址。它也可以分为立即数操作数、寄存器操作数和存储器操作数,即要转移的目标地址包含在指令中,或存放在寄存器中,或存放在存储单元之中。3.1.28086/8088的机器代码格式8086/8088 CPU的机器代码格式如图3.1所示。

1/2字节0/1字节0/1/2字节0/1/2字节
操作码mod reg r/m位移量立即数

图3.18086/8088的机器代码格式
操作码占1或2字节,后面的各字节指明操作数。其中,“mod reg r/m”字节表明寻找操作数的方式(即采用的寻址方式),“位移量”字节给出某些寻址方式需要的相对基地址的偏移量,“立即数”字节给出立即寻址方式需要的数值本身。由于设计有多种寻址方式,操作数的各个字段有多种组合,表3.1给出了各种组合情况。

表3.18086/8088指令的寻址方式字节编码

r/m

mod
000110

11
w=0w=1reg
000[BX SI][BX SI D8][BX SI D16]ALAX000001[BX DI][BX DI D8][BX DI D16]CLCX001010[BP SI][BP SI D8][BP SI D16]DLDX010011[BP DI][BP DI D8][BP DI D16]BLBX011100[SI][SI D8][SI D16]AHSP100101[DI][DI D8][DI D16]CHBP101110[D16][BP D8][BP D16]DHSI110111[BX][BX D8][BX D16]BHDI111
8086/8088指令多可以有两个操作数。在“mod reg r/m”字节中,reg字段表示一个采用寄存器寻址的操作数,reg占用3位,不同编码指示8个8位(w=0)或16位(w=1)通用寄存器之一; mod和r/m字段表示另一个操作数的寻址方式,分别占用2位或3位。(1) mod =00时为无位移量的存储器寻址方式。但其中,当r/m =110时为直接寻址方式,此时该字节后跟16位有效地址D16。(2) mod =01时为带有8位位移量的存储器寻址方式。此时该字节后跟一个字节,表示8位位移量D8,它是一个有符号数。(3) mod =10时为带有16位位移量的存储器寻址方式。此时该字节后跟两个字节,表示16位位移量D16,它也是一个有符号数。(4) mod =11时为寄存器寻址方式,由r/m指定寄存器,此时的编码与reg相同。3.1.3与数据有关的寻址方式指令中关于如何求出存放操作数有效地址的方法称为操作数的寻址方式。计算机按照指令给出的寻址方式求出操作数有效地址和存取操作数的过程,称为寻址操作。在微机中,寻址方式可能有如下3种情况。(1) 操作数包含在指令中,称为立即寻址。(2) 操作数包含在CPU的内部寄存器中,称为寄存器寻址。(3) 操作数在内存的数据区中,这时指令中的操作数字段包含着此操作数的地址,称为存储器寻址。为了更清楚地掌握寻址方式,下面以常用的MOV指令来举例说明各种寻址方式的功能。MOV指令是一个数据传送指令,相当于高级语言的赋值语句,其格式为: 
MOVOPRD1,OPRD2
MOV指令的功能是将源操作数OPRD2传送至目的操作数OPRD1。在讲述中,假设目的操作数采用寄存器寻址方式,用源操作数来反映各种寻址方式的功能和彼此的区别。1. 立即数寻址方式立即数寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指令代码段中。立即数可以是8位数或16位数。如果是16位数,则低位字节存放在低地址中,高位字节存放在高地址中。立即数寻址方式只能用于源操作数字段,不能用于目的操作数字段,经常用于给寄存器赋初值。【例3.1】将8位立即数18存入寄存器AL中。
MOVAL,18
指令执行后,(AL)= 12H

图3.2立即数寻址方式示意图

【例3.2】将16位立即数8090H存入寄存器AX中。
MOVAX,8090H
图3.2给出了立即数寻址方式示意图。指令执行后的结果为: (AX)= 8090H。2. 寄存器寻址方式在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。这种寻址方式大都用于寄存器之间的数据传输。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等; 对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。这种寻址方式可以取得较高的运算速度。下列指令都属于寄存器寻址方式: 
MOVDS,AX
MOVAL,CL
MOVSI,AX
MOVBL,AH
【例3.3】寄存器寻址方式的指令操作过程如下。
MOVAX,BX
如果指令执行前(AX)= 6688H,(BX)= 1020H; 则指令执行后,(AX)= 1020H,(BX)保持不变,图3.3给出了寄存器寻址方式示意图。3. 存储器寻址方式

图3.3寄存器寻址方式示意图

寄存器寻址虽然速度较快,但CPU中寄存器数目有限,不可能把所有参与运算的数据都存放在寄存器中。多数情况下,操作数还是要存储在主存中。如何寻址主存中存储的操作数称为存储器寻址方式,也称为主存寻址方式。在这种寻址方式下,指令中给出的是有关操作数的主存地址信息。由于8086/8088的存储器是分段管理的,因此这里给出的地址只是偏移地址(即有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中。为了方便各种数据结构的存取,8086/8088设计了多种主存寻址方式。1) 直接寻址方式直接寻址方式是操作数地址的16位偏移量直接包含在指令中,和指令操作码一起放在代码段,而操作数则在数据段中。操作数的地址是数据段寄存器DS中的内容左移4位后,加上指令给定的16位地址偏移量。把操作数的偏移地址称为有效地址EA,则物理地址=16D×(DS) EA。如果数据存放在数据段以外的其他段中,则在计算物理地址时应使用指定的段寄存器。直接寻址方式适合于处理单个数据变量。【例3.4】直接寻址方式示例如下。
MOVAX,[400H]
如果(DS)= 1000H,则物理地址的计算式为: 

图3.4直接寻址方式示意图
10000H(段基地址)  400H(偏移地址)= 10400H(物理地址)图3.4给出了直接寻址方式示意图。指令执行后的结果为: (AX)= 1A2BH。也可以用符号地址代替数值地址,例如: 
MOVAX,BUFFER
此时BUFFER为存放数据单元的符号地址。它等效于如下形式: 
MOVAX,[BUFFER]
2) 寄存器间接寻址方式在寄存器间接寻址方式中,操作数在存储器中。操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供。这又分成两种情况: 如果指令中指定的寄存器是BX、SI、DI,则用DS寄存器的内容作为段地址,即操作数的物理地址为: 
物理地址 = 10H ×(DS) (BX、SI或DI)
如指令中用BP寄存器,则操作数的段地址在SS中,即堆栈段,所以操作数的物理地址为: 
物理地址 = 10H ×(SS) (BP)
【例3.5】寄存器间接寻址方式示例如下。
MOVAX,[SI]

图3.5寄存器间接寻址方式示意图

如果(DS)=2000H,(SI)=1500H,则物理地址的计算式为: 

20000H(段基地址) 1500H(偏移地址)
=21500H(物理地址)

图3.5给出了寄存器间接寻址方式示意图。指令执行后的结果为: (AX)= C5D6H。3) 寄存器相对寻址方式该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。即: EA=
(BX)(BP)(SI)(DI) 
8位
16位位移量与寄存器间接寻址方式类似,对于寄存器为BX、SI、DI的情况,段寄存器用DS,则物理地址为: 
物理地址 = 10H ×(DS) (BX、SI或DI)  8位(或16位)位移量
当寄存器为BP时,则使用SS段寄存器的内容作为段地址,此时物理地址为: 
物理地址 = 10H ×(SS) (BP)  8位(或16位)位移量
【例3.6】寄存器相对寻址方式示例如下。
MOVAX,DISP[DI]
也可表示为
MOVAX,[DISP   DI]
其中DISP为16位位移量的符号地址。如果(DS)= 3000H,(DI)= 2000H,DISP = 600H,则物理地址的计算式为: 
30000H(段基地址)  2000H(变址)  600H(位移量) =32600H(物理地址)
图3.6给出了寄存器相对寻址方式示意图,指令执行后的结果是: (AX)= 005AH。

图3.6寄存器相对寻址方式示意图
4) 基址加变址寻址方式在基址加变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器,可把两种方式组合起来形成一种新的寻址方式。基址加变址的寻址方式是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,并以一个段寄存器作为地址基准,作为操作数的地址。两个寄存器均由指令指定。当基址寄存器为BX时,段寄存器使用DS,则物理地址为: 
物理地址 = 10H ×(DS) (BX

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP