80x86/Pentium 微型计算机原理及应用(第3版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-12-02 23:06:05

点击下载

作者:吴宁

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

80x86/Pentium 微型计算机原理及应用(第3版)

80x86/Pentium 微型计算机原理及应用(第3版)试读:

前言

21世纪的人类社会已进入以知识经济为主导的信息时代,计算机技术与集成电路工艺的迅猛发展,推动了以微处理器性能为表征的新器件、新技术和新方法的不断变革,信息技术产业与新兴电子产品对社会和人类文明的影响越来越大。学习与掌握微型计算机的基本知识与应用技能,已成为人类现代文明的重要组成部分。为了与计算机技术的发展和教学改革的形势相适应,我们对《80x86/Pentium微型计算机原理及应用》教材的前期版本进行了修订,并作为普通高等教育“十一五”国家级规划教材出版。

修订版的编写以教育部高等学校非计算机专业计算机基础课程的“基本要求 V4.0”精神为指导,结合国家和省精品课程建设成果及多年的教学实践,深入研究教材内容和课程体系,吸取国内同行师生使用前期版本的反馈意见,并参考了一些国外优秀教材。教材在前期版本的基础上对原章节内容加宽加深,既保持了多年形成的比较成熟的课程体系,又适时地引入了近年来微型计算机中的新器件、新技术和新方法,力求做到“基础性、系统性、实用性和先进性”的统一。

根据工科非计算机专业学习与应用计算机的特点与教学规律,考虑到Intel 80x86/Pentium系列CPU以及所构建PC系统的兼容性,本次修订版在结构上仍然继承了前版的风格,内容上则做了较大幅度的更新和调整。主要更新与特点总结如下:(1)结构清晰,循序渐进,重点突出,内容丰富,知识的整体性更好。(2)以Intel 80x86/Pentium系列CPU为背景,系统介绍微型计算机的组成结构、工作原理、CPU功能特点、指令系统、汇编语言程序设计、中断的工作原理、接口技术等。(3)重点介绍了Intel 8086/8088 CPU的结构与特点、基本指令集、外围接口技术的原理与应用方法等,这是我们学习与掌握微型计算机原理与应用的基础。(4)在有关微处理器的章节中除了个别调整外,重点说明了80386 CPU的结构特点、寄存器组织和存储管理,增加了 Pentium CPU 的内部结构、协处理器 80x87、超线程技术、64位微处理器和多核处理器等内容的介绍。(5)在“指令系统”与“汇编语言程序设计”两章中,进一步完善了Intel 80x86/Pentium系列CPU的指令系统,增加了高版本宏汇编伪指令的应用、基于多媒体指令的程序设计方法、浮点运算指令集及其编程、汇编语言与高级语言的接口、保护方式下的编程方法等内容。(6)对有关存储器的内容进行了部分调整,在保证基本概念完整、更新部分芯片的基础上,增加了双倍速SDRAM(DDR)存储器、典型快擦写存储器(闪存)的介绍,补充介绍了32位处理器及存储器模块的连接应用。(7)整合了原书的第6、8章的内容,系统地介绍了8086/8088~Pentium系列CPU的I/O系统与中断,并结合32位CPU的特点增加了保护模式下中断与异常的处理过程。(8)从现代微处理器应用角度,调整了接口部分的内容,补充了串行接口与通信的基础知识,精简了UART原理和8250芯片的具体介绍,增加了USB等串行总线的基本原理、DMA控制器8237的介绍,并更新了模拟通道的概念,增加了AD574的升级替换芯片的知识。(9)对原有第8章的内容进行了更新。以介绍微型计算机体系结构为主,按序讨论了IBM PC/AT和Pentium系列微机系统,补充了最新的总线技术(如AGP与PCI Express),并结合32位CPU的构成特点,介绍了保护模式下多任务管理机制和虚拟8086模式,对如何在保护模式下进行多任务切换进行了举例说明。

微型计算机原理及其应用课程是工科电子信息与电气学科等相关专业的重点主干课程,是后继课程学习的纽带和桥梁,是掌握微机软、硬件设计技术的基础,同时也是后PC时代学习、开发和应用DSP、ARM及“嵌入式系统”技术的基础。在微处理器与计算机技术飞速发展和升级换代的进程中,计算机本身的体系结构、基本工作原理并没有改变。基于此,本书仍以8086/8088 CPU为切入点,重点讲述8086/8088 CPU的构成、寄存器特点、存储器管理方式以及实模式编程技术。在此基础上,介绍Pentium系列各处理器的发展与特点,结合扩展的指令系统给出了Intel架构32位CPU的编程特点,以及多媒体和保护模式编程的基本方法。同时,对CPU常用外围器件,如半导体存储器、典型可编程接口芯片及其相关的中断技术、接口设计方法和典型控制程序等给予详尽的介绍。内容组织上遵循“由易及难、循序渐进、宽编窄用”的原则,叙述上力求做到由浅入深、通俗易懂。

全书共8章,第1~4章分别介绍微型计算机系统组成、微型计算机的CPU、汇编语言及其程序设计等基本知识;第5~8章介绍微机存储系统、数据传送方式、中断技术、接口芯片及常用外部设备的相关知识及实用技术。

本书由南京航空航天大学和东南大学优秀教学团队联合编写。全书由吴宁统稿,其中,第1、2章由张颖编写,第3、4章由吴宁编写,第5、7章由马旭东编写,第6、8章由周芳编写。周磊、葛芬、段丽芬在全书编写过程中给予了许多协助。全书教学参考学时数为 60~80,使用时可根据具体情况选择适当的内容。本书还为任课老师提供电子课件及由于篇幅所限不能在本书提供的附录列表,需要者请登录华信教育资源网http://www.hxedu.com.cn免费注册下载。

前版教材《80x86/Pentium微型计算机原理及应用》自出版以来,连续15次重印,为国内多所重点大学选为本科生教学用书,并列为研究生考试的主要参考书。借此新版出版之际,对业界同仁的信任与鼓励表示衷心的感谢。由于笔者水平有限,书中难免有错误和不妥之处,请读者批评指正。

编著者

第1章 计算机基础

微型计算机是性能提高最快、应用最广泛的数字计算机。通用微型计算机配有比较完善的系统软件和外围设备,一般可用于数值计算、信息处理和智能控制等诸多方面。本章主要介绍数字计算机数据处理的基础、计算机系统的基本构成以及主要的技术指标。

1.1 数据、信息、媒体和多媒体

微型计算机最基本的用途是信息处理,本节将介绍数据、信息和媒体等相关概念。

1.数据

国际标准化组织(ISO)对数据的定义是:“数据是对事实、概念或指令的一种特殊表达形式,这种特殊的表达形式可以用人工的方法或者用自动化的装置进行通信、翻译转换或者进行加工处理。”根据这一定义,通常意义下的数字、文字、图形、图像、声音、活动图像(视频)等都可认为是数据,因为人们可以对它们进行各种人工方式的处理,如通信、加工、转换等。

对计算机而言,数字、文字、图形、图像、声音、活动图像等都不能直接由它进行处理,它们必须采用“特殊的表达形式”才能由计算机进行通信、转移或加工处理。这种特殊的表达形式就是二进制编码形式。

通常,在计算机内部又将数据分为数值型数据和非数值型数据。数值型数据是指日常生活中经常接触到的数字类数据,它主要用来表示数量的多少,可以比较大小;而 ISO 定义中其他的数据统称为非数值型数据。在非数值型数据中又有一类最常用的数据,称为字符型数据,它可以方便地表示文字信息,供人们直接阅读和理解。其他的非数值型数据则主要用来表示图形、图像、声音和活动图像。

用计算机进行数据处理指对数据进行加工、转换、存储、分类、排序和计算的过程。数据处理的目的是从原始数据或基础数据生成或转移得到对使用者有用的数据。

2.信息

根据 ISO 的定义可以通俗地认为:信息是对人有用的数据,这些数据可能影响人们的行为与决策。

计算机信息处理,实质上就是由计算机进行数据处理的过程。也就是说,通过数据的采集和输入,有效地把数据组织到计算机中,由计算机系统对数据进行相应的存储、转换、合并、分类、计算、汇总等操作。经过计算机对数据的加工处理,向人们提供有用的信息,这一过程就是信息处理。更通俗地说,信息处理的本质就是数据处理,数据处理的主要目的是获取有用的信息。

3.媒体

媒体又称媒介、媒质,英文是medium(单数)和media(复数),指承载信息的载体。根据国际电信联盟(ITU)下属的国际电报电话咨询委员会(CCITT)的定义,与计算机信息处理有关的媒体有下列5种:感觉媒体、表示媒体(二进制编码)、存储媒体(存储器)、表现媒体(输入或输出设备)、传输媒体。

4.多媒体

多媒体技术中的多媒体,指多种感觉媒体。所谓多媒体技术,是指能够交互式地综合处理多种不同感觉媒体(语言、音乐、文字、数值、图形、图像、活动图像,其中至少包含声音或活动图像)的信息处理技术。具有这种功能的计算机就是多媒体计算机,具有这种能力的通信系统就是多媒体通信系统,能够有效地存储、管理、检索多种感觉媒体的数据库系统就是多媒体数据库系统。多媒体技术的重点是使计算机能很好地处理声音信息及(动态)视、听特性的媒体,如视频、全活动景像等。多媒体信息的处理涉及大量的数据,所以大容量数据存储、数据压缩和解压缩技术也是多媒体技术的重要发展方向之一。

多媒体技术的发展,使计算机更便利地进入了人类生活的各个领域,促进了全新的信息产品制造业与信息服务业的繁荣兴旺,促使人与计算机之间建立起更默契、更融洽的新型关系。

1.2 计算机中数值数据信息的表示

1.2.1 机器数和真值

计算机在本质上只能识别0、1表示的二进制数码。为了表示正数和负数,专门选择一位二进制数来表示数的符号,该位为0,表示正号;该位为1,表示负号,通常选择最高位作为符号位。

这就是说,数的符号在计算机中也数值化了。一个数在机器(计算机)中的表示形式称为机器数,而数本身的实际值叫做真值(机器数真值)。真值可以用二进制数表示,也可用十进制数表示,但根据习惯,常用十进制数表示,如图1-1所示。图1-1 机器数真值

机器数有如下特点:(1)机器数的正、负号是数值化的。(2)机器数所能表示的数的范围受到机器(计算机)字长的限制。

那么什么是计算机字长呢?我们先来解释几个计算机中的常用术语。

① 位(bit):是计算机所能表示的最小数据单位,它只有两种状态0和1。要想表示更大的数,就得把更多的位组合起来作为一个整体,每增加一位,所能表示的数就增大一倍。

② 字节(Byte):一个8位二进制数称为1字节,它是计算机处理数据的基本单位(B)。在计算机中,其存储器容量大小常以字节数的多少来度量。常用的4种度量单位是KB、MB、GB和TB,其大小分别为:10

1KB=2B=1024B1010

1MB=2×2B=1024KB101010

1GB=2×2×2 B=1024MB10101010

1TB=2×2×2×2 B=1024GB

③ 字(Word):作为单位一般指16位二进制数,但也把计算机处理数据时,处理器通过数据总线一次存取、加工和传送的数据位数称为字,这时字通常由1字节或若干字节组成。

④ 字长(Word Length):指处理器的二进制位数。8位微处理器的字长为8位;16位微处理器的字由2字节构成;32位微处理器的字则由4字节构成。字长是衡量计算机性能的一个重要标志,字长越长,性能越强,精度越高。(3)小数点不能直接标出,需要按一定方式约定小数点的位置。

需要说明的是,在计算机系统开发和应用中会涉及二进制(Binary,简写B)、八进制(Octal,O 或 Q)、十进制(Decimal,D)和十六进制(Hexdecimal,H)等数制,其中十六进制最常用、最方便,它与二进制的关系简明、直接,并用0~9,A~F(H)代表0~15(D)。1.2.2 数的表示方法——原码、反码和补码

为妥善解决符号数值化的表示与运算问题,设定了机器数x的三种不同编码形式,即原码、反码和补码。分别记作[x]、[x]和[x]原反。补

1.原码

设x=xx…x,其中x为一位二进制数,i=1,2,…,(n-1)。n12n-1i位二进制数

一个数的原码,就是数值部分为绝对值,加上用0和1分别表示数的符号+和-的机器数。【例1-1】 x=67=+1000011,[x]=01000011;x=-67=-1000011,11原2[x]=11000011。2原

在原码表示法中,根据定义,数0的原码有两种不同形式(设字长为8位):

原码表示简单易懂,而且与真值的转换方便。但原码表示的数不便于计算机运算,因为在两原码数运算时,首先要判断它们的符号,然后再决定用加法还是用减法,导致机器的结构相应地复杂化或增加机器的运算时间。为解决上述问题,引入反码和补码表示法。

2.反码

设x=xx…x,其中x为一位二进制数,i=1,2,…,(n-1)。12n-1i定义

式中,

根据定义,正数的反码与原码相同;对于负数,反码的符号位为1,其余位为数值位按位取反。【例1-2】 x=83=+1010011,[x]=01010011;x=-83=-1010011,11反2[x]=10101100。2反

在反码表示法中,根据定义,数0的反码也有两种不同形式(设字长为8位):

3.补码

引入补码的概念,一方面是为了解决原码、反码存在的一些问题,另一方面是为了将计算机中的加、减运算简化为单纯的加法运算,这种运算上的特性与补码本身的定义有关。(1)同余的概念和补码

设有两个数a=17,b=27,若用10去除a和b,则它们的余数均为7,我们称17和27在以10为模时是同余的,并记作17=27 (mod 10)。

或者说,17和27在以10为模时是相等的。此处的模是一个计量系统所能表示的最大量程(或一个计量单位称为模或模数)。

由同余概念,不难得出

因此当a为负数时,如a=-4,在以10为模时,有

上式说明,在以10为模时,-4与+6是相等的。我们称+6为-4的补码,或者说+6与-4对模10来说互为补数。有了补码的概念,就可将减法转化为加法(加补码)来进行。如:

该式说明,在以10为模时,7减4可以通过7加-4的补码6来进行,而所得结果是相同的(只要在加补码6时,将所产生的进位舍弃即可,这正是以10为模的意思)。

现在把同余和补码的概念推广到二进制数。设计算机字长为n位,n那么其模为2,即n

这就是说,字长n位的机器,2在机器中仅能以n个0表示。或者n说,2和0在机器中表示的形式是一样的。(2)补码求法

设x=xx…x,其中x为一位二进制数,i=1,2,…,(n-1)。12n-1i定义

或写成

① 正数的补码。[x]=[x]=[x]。补原反【例1-3】 [+127]=[+127]=[+127]=。原反补

② 负数的补码。先求负数的反码,然后在反码最低一位上加1就得到该负数的补码。

还可以用形式上更简便的方法求得负数x的补码:符号位为1,将原数值中最右边一个1及其后面的0保持不变,而最右一个1以左的各位按位取反。【例1-4】 x=-0011000,[x]=11101000;x=-1000000,[x]11补22补=11000000。

根据定义,数0的补码仅有一种形式:[+0]=[-0]=。补补

若已知一个负数的补码,再取一次补,则 {[x]}=[x]。补补原【例1-5】 设[x]=10010111,求x的真值。补

所以,[x]=11101001,x=-1101001=-105。原

当已知8位二进数补码符号位为1时,表示该数为负数。此时要注意,其余几位不是该二进制的数值,一定要把它们按位取反,且在最低位加1,才是该二进制数的值(真值)。

十进制数及其对应的8位二进制数的原码、反码和补码表示如表1-1所示。表1-1 十进制数及其对应的8位二进制数的表示方法

小结:(1)有符号数三种编码的最高位都是符号位。符号位为0,表示真值为正数,其余位为真值;符号位为1,表示真值为负数,其余位除原码外,不再是真值。对于反码,只需按位取反,便是真值;对于补码,还需按位取反加1,才是真值。(2)对正数,三种编码是一样的,即[x]=[x]=[x]。对于负数,原反补三种编码就不同了。所以说,原码、反码和补码的实质是用来解决负数在机器中的表示而引入的编码方法。(3)8位二进制数原码、反码和补码所能表示的数值范围不完全相同。它们分别是-127~+127,-127~+127和-128~+127。其中对0的表示也不尽相同,原码和反码有两种表示方法,补码只有一种表示方法。(4)当计算机采用不同的码制时,运算器和控制器的结构将不同。采用原码形式的计算机称原码机。类似地,有反码机和补码机。小型计算机和微型计算机大多为补码机(实际上原码机与反码机已不采用了)。1.2.3 补码的运算

从以上讨论可知,在微型计算机中,有符号数以补码的形式在机器中存在和运算。这主要是因为补码的加、减运算比原码简单;符号位与数值位一起参加运算,并能自动获得正确结果。

设x和y是两个正数,可以证明,两个数和的补码等于两个数补码的和:

同样也可以证明,该两数差的补码等于被减数的补码与减数负值的补码(或称求补)之和。

上式说明,在补码运算中,两数差的运算可简化为单纯的加法运算。

x 的补码直接由补码定义可得到,而[-y]可通过对[y]“连同符补补号位在内一起变反加 1”得到(称为“求补”)。【例1-6】 [y]=00000100,[-y]=11111100。补补【例1-7】 计算x-y。x,y均为正数,且x>y。设x=122,y=37,字长n=8。

求得真值为正数(01010101)=85。2【例1-8】 计算x-y。x,y均为正数,且x<y。设x=64,y=65,字长n=8。

求真值:(11111111)={(11111111)}=-(00000001)补补补=-1。【例1-9】 计算x+y。x,y均为正数。设x=64,y=65,字长n=8。

此时,两个正数相加得出负数,显然是错误的。这种情况称为“溢出”。由表 1-1 知,8位计算机中,由于最高位为符号位,剩下的数值位只有 7 位,表示数的范围是-128~+127。当两个正数相加其和大于127或两个负数相减其绝对值之和大于128时,就产生了“溢出”,致使结果出错。推广到字长n位的符号数,最高位为符号位,n-1n-1位表示数值。能表示的最大值为2-1(即n-1个1)。当运算结果超过此值,就会产生“溢出”。

小结:(1)补码运算时,参加运算的两个数均为补码,结果也是补码,需转换才能得到真值。(2)可以将减法变为加法运算,以简化硬件设计。(3)运算时:① 符号位与数值位一起参加运算;② 符号位产生的进位可舍弃;③ 要保证运算结果不超过补码所能表示的数的最大范围,否则将产生“溢出”错误。为此,在计算机中设有专门电路用以判断运算结果是否产生溢出,并设置溢出标志告知本次运算的结果的状态。(4)无符号数和有符号数的加法运算可用同一电路完成。1.2.4 定点数与浮点数

在计算机中,不仅要处理整数运算,而且也要处理小数运算,如何处理小数点位置是十分重要的,通常用定点法和浮点法来表示小数点的位置。(1)定点表示法。就是小数点位置在数中固定不变。例如:

1.100101,0.100101,110.0101

一般来说,小数点位置固定在哪个位置上并无限制,但为了使用简便,在计算机中有两种常用的定点数。

① 定点纯小数。把小数点固定在最高数值位左边,在小数点左边设有一位符号位,小数点本身不占位,其格式为:

② 定点纯整数。把小数点固定在最低数值位右边,最高位仍为符号位,小数点本身不占位,其格式为:

定点数的这两种表示法,在计算机中均有采用。但对一台机器而言,采用哪种方法,需事先约定。【例1-10】 有如下两个8位二进制数:【例1-11】 有例1-10中同样两个数,但小数点位置不同,则有

从上面两个例子可以看出,定点整数和定点小数在格式上毫无差别,这是因为定点数的小数点是隐含的,但它们的真值却不相同。此外,相同位数、不同码制的定点数表示的数的范围也不相同。

同一台计算机可处理的整数类型往往有很多种,以目前广泛使用的Pentium机为例,除了无符号整数之外,它还有三种不同类型的整数,如表1-2所示。表1-2 Pentium处理器的三种整数类型

由于定点数是将小数点的位置固定,因此运算起来很不方便。一方面,它要求对所有原始数据要用比例因子化成小数或整数,算出结果又要用比例因子折算成真值;另一方面,这种方法所表示的数的范围小、精度低。所以有必要引入另一表示方法——浮点表示法。(2)浮点表示法。为了在位数有限的前提下,尽量扩大数的表示范围,同时又保持数的有效精度,计算机往往采用浮点数表示数值。在浮点表示初期,把一个数通过改变小数点位置表示成2的p次幂和绝对值小于1的数S相乘的形式:

式中,N称为浮点数或实数;S是N的尾数,它是数值的有效数字部分,通常用带符号的定点小数表示,一般用原码表示;2是N的底数,是该进位计数制的基数,在计算机中不出现,是隐含的;p是指数,称为阶码,通常为带符号整数,一般用补码表示。阶码p的大小决定了数的范围,尾数S的长短则规定了数的有效数字的位数(精度)。在计算机中,p和S均为二进制数。【例1-12】 试将以下数表示成浮点数形式。

浮点数在机器中的一种表示形式如下:

也就是说,若要在机器中表示一个浮点数,阶码和尾数要分别表示,且都有自己的符号位。

通常,用一位二进制数p表示阶码的符号位。当p=0时,表示阶ff码为正;当p=1时,表示阶码为负。同样,用一位二进制数S表示尾ff数的符号位。当S=0时,尾数为正;当S=1时,尾数为负。ff

若浮点数中1/2≤S<1,则称该浮点数为规格化了的浮点数。【例1-13】 (-18.75)=(-10010.11)=(-0.1001011)×102+1012。

假定尾数用8位二进制数表示,阶码用4位二进制数表示,且均含符号位,尾数用原码表示,则有0101

或表示成(1.1001011)×(10)。-11【例1-14】 (0.078125)=(0.000101)=(0.101)×2。102

同上例

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载