pc资料.docx
- 文档编号:6430307
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:46
- 大小:104.16KB
pc资料.docx
《pc资料.docx》由会员分享,可在线阅读,更多相关《pc资料.docx(46页珍藏版)》请在冰豆网上搜索。
pc资料
(二)数值信息在计算机内的表示1.整数(定点数)的表示
整数不使用小数点,所以它也叫做“定点数”。
计算机中的整数分为两类:
不带符号的整数(UnsignedInteger),带符号的整数(SignedInteger)。
不带符号的整数常用于表示地址等正整数,它们可以是8位、16位甚至32位。
8个二进位表示的正整数其取值范是0~255(28-1),16个二进位表示的正整数其取值范是0~65535(216-1),32个二进位表示的正整数其取值范是0~232-1。
带符号的整数必须使用一个二进位作为其符号位,一般总是最高位(最左面的一位),“0”表示“+”(正数),“1”表示“-”(负数),其余各位则用来表示数值的大小。
为了内部运算处理方便,负整数在计算机内不止一种表示方法。
上面的表示法称为“原码”,另外的两种方法分别叫做“反码”和“补码”。
负数使用反码表示时,符号位仍为“1”,但绝对值部分却正好与原码相反(“0”变为“1”,“1”变为“0”)。
负数使用补码表示时,符号位也是“1”,但绝对值部分却是反码的个位加“1”后所得到的结果。
注意:
正整数无论采用原码、反码还是补码表示,其编码都是相同的,并无区别。
还有一种整数也经常在计算机内使用,称为“二进制编码的十进制”整数(BinaryCodedDecimal,简称BCD整数),它使用4个二进位表示1个十进制数字,符号的表示仍与上相同。
2.实数(浮点数)的表示
实数也叫浮点数,因为它的小数点位置不固定。
一个实数总可以表达成一个纯小数和一个乘幂之积。
任意一个实数,在计算机内部都可以用“指数”(这是整数)和“尾数”(这是纯小数)来表示,这种用指数和尾数表示实数的方法叫做“浮点表示法”。
所以,在计算机中实数也叫做“浮点数”,而整数则叫做“定点数”。
由于指数可以选用不同的编码(原码、补码等),尾数的格式和小数点位置也可以有不同规定,因此,浮点数的表示方法不是惟一的。
不同计算机可以有不同的规定,这就引起了相互间数据格式的不兼容性。
为此,美国电气与电子工程师协会(IEEE)制订了有关浮点数表示的工业标准IEEE754,已被当代所有各类处理器采用。
浮点数的长度可以是32位、64位甚至更长,位数越多,可表示的数值的范围越大,精度也越高。
(三)整数的性质和运算1.整数补码表示的数学意义
无符号二进制整数的原码,其编码与数值之间的关系如下。
设KnKn-1…K1K0是一个无符号二进制整数,S是它相应的十进制数值,则
S=Kn×2n+Kn-1×2n-1+…+K1×21+K0×20
其中的Kj(j=n,n-1,…1,0)只能为0或1,Kn是最高位,K0是最低位(个位)。
KnKn-1…K1K0用来表示带符号整数时,Kn是符号位,Kn-1…K1K0则为数值位。
若KnKn-1…K1K0表示的是原码编码的整数,则十进制数值S与编码的关系是:
S=Kn-1×2n-1+…+K1×21+K0×20(当Kn=0)
S=-(Kn-1×2n-1+…+K1×21+K0×20)
(当Kn=1)
但是,如果Knn-1…K1K0表示的是补码编码的整数时,不论符号位Kn如何,十进制数值S与编码的关系可以统一地表示成为:
S=Kn×(-2n)+Kn-1×2n-1+…+K1×21+K0×20采用补码表示的n位二进制带符号整数的有效范围是:
-2n-1≤S≤2n-1-1
计算机在整数运算过程中,若结果超出此允许范围,则称为发生“溢出”。
2.整数的算术、逻辑运算
(1)不同长度整数之间的转换
一般而言,短整数可以转换成长整数表示,而反过来却不行。
短整数转换成长整数表示的方法是:
把符号位向左扩充至所需要的长度为止。
(2)整数的变号操作
所谓“变号操作”是指将该整数变成绝对值相同但符号相反的另一个整数。
变号操作又叫“取负”运算,它的处理方法是:
将该整数的每一个二进位变反,然后在最末位(个位)加1,其结果即为所求值。
(3)整数的移位操作
移位操作有多种,按照移位方向来分,移位操作可分成左移、右移两大类;按照操作性质则又可区分为算术移位、逻辑移位和循环移位等不同类型。
它们有些只对整数进行,有些则可以对任何二进制数进行。
(4)逻辑运算
逻辑运算(又叫布尔运算)总是按位进行处理的,即对应位之间进行规定的逻辑运算,不考虑位与位之间的进位。
常用的基本逻辑运算有4种:
“非”运算(NOT)、“或”运算(OR)、“与”运算(AND)、“按位加”运算(XOR),它们都非常简单。
(5)整数加法
两个带符号整数相加的运算方法很简单,只需从低位到高位把所有位(包括符号位)相加,逢2进1,最高位产生的进位忽略不计。
(6)整数减法
两个带符号整数相减的运算方法也很简单,只需先把减数变号,然后再与被减数相加即可。
(7)整数乘法
两个无符号整数的乘法很简单,它与日常用纸和笔进行乘法几乎没有什么不同。
(8)整数除法
对于补码表示的两个带符号整数,其除法运行比乘法还要复杂一些。
下面是算法的简单描述(假设被除数和除数都是n位):
①把除数(补码)放入寄存器M,把被除数从n位扩展成2n位长的补码后放入寄存器A和Q,高位部分放入A(全0或全1),低位部分放入Q。
②把寄存器A和Q向左移1位。
③如果A和M同号,执行A=A-M,否则执行A=A+M。
④执行上一步操作的前后,若A的符号保持不变,或者A和Q(高位部分)的结果都是0,则操作成功,令Q0=1;否则操作不成功,恢复A原来的内容,并令Q0=0。
⑤重复上述步骤②~④共n次,结束。
除法结束后,寄存器A中存放的是余数,寄存器Q中是得到的商。
若被除数与除数异号,则商为负数,所以应再对Q取补。
不论何种情况,被除数、除数、商和余数总满足下面的公式:
被除数=商×除数+余数
(四)实数的性质和运算1.实数(浮点数)的性质
下表所示是Pentium微处理器中32位浮点数和64位浮点数的一些性质。
32位浮点数
64位浮点数
符号
阶码
尾数
数值
符号
阶码
尾数
数值
+0
0
全0
全0
0
0
全0
全0
0
-1
1
全0
全0
0
1
全0
全0
0
+∞
0
全1
全0
+∞
0
全1
全0
+∞
-∞
1
全1
全0
-∞
1
全1
全0
-∞
规格化的
非0正实数
0
0 F 2e-127(1.f) 0 0 f 2e-1023 (1.f) 规格化的 非0负实数 1 0 f -2e-127(1.f) 1 0 f -2e-1023(1.f) 非规格化的 非0正实数 0 0 f≠0 2-126(0.f) 0 0 f≠0 2-1022 (0.f) 非规格化的非0负实数 1 0 f≠0 -2-126(0.f) 1 0 f≠0 -2-1022 (1.f) 2.实数(浮点数)的四则运算 浮点数的加、减运算要比定点数(整数)复杂得多。 下面只做简要介绍。 设浮点数A=As×2Ea,B=Bs×2Eb则 和数C=(As×2Ea-Eb+Bs)×2Eb,差D=(As×2Ea-Eb-Bs)×2Eb(若Ea≤Eb) 或者: 和数C=(As×Bs×2Eb-Eb)×2Ea,差D=(As-Bs×2Eb-Ea)×2Ea(若Ea>Eb)一般说来,浮点数的加、减运算有如下几个步骤: (1)检测A和B中有无0,若A=0,则C=B,若B=0,则C=A。 运算结束。 (2)计算两数阶码之差,即d=Ea-Eb,若d>0,则将尾数Bs向右移d位,若d<0,则将尾数As向右移-d位,若d=0,则As和Bs均不移位。 这个过程叫做“对阶”。 (3)两尾数相加或相减。 (4)把结果进行规格化。 对于Pentium微处理器来说,若结果尾数绝对值小于1,则尾数不断左移且阶码不断减1,直至尾数绝对值大于或等于1;若结果尾数绝对值大于或等于2,则尾数右移1位且阶码加1。 注意: 两浮点数加/减时,在结果规格化的过程中,可能会发生“上溢”或“下溢”。 浮点数的乘/除法比加/减法稍简单一些,其公式为: 乘积=(As×Bs)×2Ea+Eb商=(As/Bs)×2Ea+Eb处理过程如下: (1)检测A和B中有无0,若AS=0,则乘积(商)=0,运算结束;若BS=0,乘法时乘积=0,除法时商为∞,运算结束 (2)计算两数阶码之和(或差)。 (3)两尾数相乘或相除。 (4)把结果进行规格化。 即,若结果尾数绝对值小于1,则尾数不断左移且阶码不断减1;若结果尾数绝对值大于或等于2,则尾数右移且阶码加1。 注意: 两浮点数乘/除时,在阶码相加(减)的过程中,或者在结果规格化的过程中,可能会发生“上溢”或“下溢”。 浮点数运算过程中,为了保证浮点数运算的精度,当尾数右移时,对移出的位还需进行“舍入”处理。 (四)实数的性质和运算1.实数(浮点数)的性质 下表所示是Pentium微处理器中32位浮点数和64位浮点数的一些性质。 32位浮点数 64位浮点数 符号 阶码 尾数 数值 符号 阶码 尾数 数值 +0 0 全0 全0 0 0 全0 全0 0 -1 1 全0 全0 0 1 全0 全0 0 +∞ 0 全1 全0 +∞ 0 全1 全0 +∞ -∞ 1 全1 全0 -∞ 1 全1 全0 -∞ 规格化的 非0正实数 0 0 F 2e-127(1.f) 0 0 f 2e-1023 (1.f) 规格化的 非0负实数 1 0 f -2e-127(1.f) 1 0 f -2e-1023(1.f) 非规格化的 非0正实数 0 0 f≠0 2-126(0.f) 0 0 f≠0 2-1022 (0.f) 非规格化的非0负实数 1 0 f≠0 -2-126(0.f) 1 0 f≠0 -2-1022 (1.f) 2.实数(浮点数)的四则运算 浮点数的加、减运算要比定点数(整数)复杂得多。 下面只做简要介绍。 设浮点数A=As×2Ea,B=Bs×2Eb则 和数C=(As×2Ea-Eb+Bs)×2Eb,差D=(As×2Ea-Eb-Bs)×2Eb(若Ea≤Eb) 或者: 和数C=(As×Bs×2Eb-Eb)×2Ea,差D=(As-Bs×2Eb-Ea)×2Ea(若Ea>Eb)一般说来,浮点数的加、减运算有如下几个步骤: (1)检测A和B中有无0,若A=0,则C=B,若B=0,则C=A。 运算结束。 (2)计算两数阶码之差,即d=Ea-Eb,若d>0,则将尾数Bs向右移d位,若d<0,则将尾数As向右移-d位,若d=0,则As和Bs均不移位。 这个过程叫做“对阶”。 (3)两尾数相加或相减。 (4)把结果进行规格化。 对于Pentium微处理器来说,若结果尾数绝对值小于1,则尾数不断左移且阶码不断减1,直至尾数绝对值大于或等于1;若结果尾数绝对值大于或等于2,则尾数右移1位且阶码加1。 注意: 两浮点数加/减时,在结果规格化的过程中,可能会发生“上溢”或“下溢”。 浮点数的乘/除法比加/减法稍简单一些,其公式为: 乘积=(As×Bs)×2Ea+Eb商=(As/Bs)×2Ea+Eb处理过程如下: (1)检测A和B中有无0,若AS=0,则乘积(商)=0,运算结束;若BS=0,乘法时乘积=0,除法时商为∞,运算结束 (2)计算两数阶码之和(或差)。 (3)两尾数相乘或相除。 (4)把结果进行规格化。 即,若结果尾数绝对值小于1,则尾数不断左移且阶码不断减1;若结果尾数绝对值大于或等于2,则尾数右移且阶码加1。 注意: 两浮点数乘/除时,在阶码相加(减)的过程中,或者在结果规格化的过程中,可能会发生“上溢”或“下溢”。 浮点数运算过程中,为了保证浮点数运算的精度,当尾数右移时,对移出的位还需进行“舍入”处理。 一、微处理器的原理与组成 (一)微处理器的基本结构 随着超大规模集成电路的发展,微处理器的功能越来越高。 从80386到Pentium,到现在的64位的微处理器,其内部结构越来越复杂。 其主要功能部件有总线接口部件、高速缓存(Cache)部件、取指译码部件、指令缓冲池部件、调度执行部件、结果回退部件、寄存器组部件等。 (二)微处理器的工作原理1.指令的执行 微处理器在执行一条指令时,主要将它分解成以下几个步骤去完成。 (1)取指令; (2)指令译码;(3)取操作数;(4)执行运算;(5)回送结果。 2.微处理器的定时 由于微处理器的操作是周期性的,即取指令,指令译码,取操作数……再取指令……周而复始地进行。 而这一系列操作步骤需要精确定时,按照精确时序进行,因此微处理器需要一个时序电路。 时序电路受控于晶体振荡电路所生成的标准振荡脉冲信号,一旦机器加电,时序电路发出的时钟信号便连续不断地产生。 (三)微处理器的特点与分类 1.微处理器的特点 (1)体积小,功耗低; (2)可靠性高,使用环境要求低; (3)系统设计灵活,使用方便。 2.微处理器分类 (1)按微处理器位数分类有: 位片、4位、8位、12位、16位、32位、64位等微处理器。 (2)按微处理器的应用领域分类有: 通用高性能微处理器、嵌入式微处理器、数字信号处理器和微控制器。 二、ALU结构 运算器主要是由寄存器和算术逻辑线路构成的。 寄存器主要用来存放数据,其长度取决于运算数据的位数,它每位触发器的状态与所表示数据对应位的数值是一一对应的。 假设约定,触发器右端输出高电位为“1”,其输出低电位为“0”。 若一个数据第i位为“1”,则寄存器第i位触发器右端输出为高电位,或者说,状态为“1”。 因此,参加运算的数据或运算结果都可保存在寄存器中。 算术逻辑线路主要是完成各种运算功能。 它是根据各种运算规则而设计的组合逻辑线路,一般没有寄存的功能,它的核心部分是加法器。 因为加、减、乘、除等算法都归结为加法与移位操作,所以加法器的设计是算术逻辑线路设计的关键。 三、指令系统 (一)指令和指令系统 指令主要由两个部分组成: 操作码———用来指出计算机应执行何种操作的一个二进制代码。 例如: 加法、减法、乘法、除法、取数、存数等各种基本操作,它们均有各自相应的操作码。 操作数地址———指出该指令所操作(处理)的对象(称为操作数)所在的存储单元的地址。 计算机中操作数可以相当灵活地指定,它可以直接包含在指令中,可以在CPU的某个寄存器中,一般情况是在存储器的某个(些)存储单元中。 指定操作数所在位置的方法称为寻址方式。 不同的计算机具有各自不同的指令,对某种特定的计算机而言,其所有指令的集合,称为该计算机的指令系统。 (二)指令的特征和功能 一般而言,指令系统应该具备下述特性: (1)指令的完备性。 是指一个指令系统应满足给定的算法,可编出程序并实现之。 (2)指令的有效性。 指令系统中所包含的指令必须是有效的,从而可用相当少的指令编出实现某种算法的程序。 (3)指令的简明性。 它指一个指令系统能简化指令处理机的操作,又能简化编程。 (4)指令的效率。 它指系统中指令的执行时间。 另外,尚要求指令系统应便于记忆和理解,占用内存少,尽量缩短逻辑延迟等。 (三)寻址方式 1.立即寻址 立即寻址又称立即数寻址。 操作数紧跟在操作码之后,直接放在指令中,这种操作数称为立即数。 立即数规定只能为整数。 立即数可以是8位或16位,要求低字节数放在低位地址中,高字节数放在高位地址中。 2.寄存器寻址 操作数在CPU的内部寄存器中,寄存器名由指令指出,这种寻址方式称之为寄存器寻址方式。 对8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH中的任意一个,对16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP之一。 3.直接寻址 直接寻址方式的操作数地址的16位偏移量(又称有效地址EA)直接包含在指令中,它紧跟在操作码之后,存放在代码段区域。 如果指令前面无前缀指明在哪一段,则默认操作数存放在数据段寄存器DS中。 它的地址为数据段寄存器DS加上这16位地址偏移量。 4.寄存器间接寻址 寄存器间接寻址方式的操作数在存储器中,操作数地址的16位偏移量包含在寄存器BX、BP、SI和DI之一中。 如果指令中未具体用前缀指明是哪个段寄存器,则寻址时,对BX、SI、DI寄存器,默认操作数在数据段寄存器DS中,即数据段寄存器DS加上SI、DI、BX中的偏移量为操作数的地址。 5.寄存器相对寻址(或称变址寻址) 采用寄存器间接寻址时,允许在指令中指定一个8位或16位的偏移量,这样,有效地址由一个基址或变址寄存器的内容加上一个偏移量来得到。 即 [BX] [BP] 有效地址EA=[SI]+(8位偏移量或16位偏移量) [DI] 6.基址加变址寻址 将一个基址寄存器的内容加上一个变址寄存器的内容形成操作数的有效地址,这种寻址称为基址加变址寻址方式。 这种寻址方式中,基址寄存器名和变址寄存器名均由指令指出。 如无段跨越前缀,对BX寄存器默认的段寄存器为DS。 只要用上寄存器BP,则默认的段寄存器为SS。 7.相对的基址加变址寻址 与寄存器相对寻址类拟,基址加变址寻址也允许带一个8位或16位的位移量。 因此,操作数的有效地址是一个基础寄存器的内容加上一个变域寄存器的内容,再加一个8位或16位的偏移量。 8.比例变址寻址 比例变址寻址只能在80386到Pentium微处理器中使用。 比例变址是指一对寄存器中的第二个用比例因子2、4或8来乘,产生操作数的内存地址。 (四)指令格式1.8086指令格式 8086/8088指令长度是比较灵活的,可在1~6个字节之间变化,组成如下表所示。 8086CPU指令形式 操作码 MOD字节 偏移量 操作码 MOD字节 DATA/DISP 操作码 MOD字节 DATA/DISPL DATA/DISPH 操作码 MOD字节 DATA/DISPL DATA/DISPH DATA 操作码 MOD字节 DATA/DISPL DATA/DISPH DATAL DATAH 2.Pentium指令的一般格式 Pentium微处理器指令的一般格式如下图所示。 从图中可看到,一条指令是由可任选的指令前缀(可以以任何的次序)、一个或两个源操作码字节、有可能要用的地址说明符(由ModR/M字节和按比例变址基址SIB字节构成)、一个位移量(根据需要)和一个立即操作数数据字段(如果需要的话)等元素组成的。 指令前缀地址大小前缀操作数大小前缀段超前前缀 0或10或10或10或1 ……………………………………………………………… 字节数 操作码ModR/mSIB位移量立即数 1或20或10或10或10,1,2或4 ……………………………………………………………… 字节数 Pentium指令的一般格式 (五)指令周期 微处理器的工作过程,不外乎取出指令、执行指令,再取出指令、执行指令……这样一个循环过程。 一条指令的取出和执行所必需的时间,称为指令周期。 指令周期依取出指令的时间不同而不同。 (六)指令的流水线和并行控制 为了提高计算机访问存储器和执行指令的处理速度,可以让一些需要计算机处理的多项操作在时间上重叠进行,甚至设计出多个功能相同或相近的部件同时对其进行处理,这种技术就是流水线与并行执行技术。 四、80x86微处理器的结构和功能 (一)80x86微处理器 1.8086/8088主要特征 (1)16位数据总线(8088外部数据总线为8位)。 (2)20位地址总线,其中低16位与数据总线复用。 可直接寻址1MB存储器空间。 (3)24位操作数寻址方式。 (4)16位端口地址线可寻址64K个I/O端口。 (5)7种基本寻址方式。 有99条基本指令。 具有对字节、字和字块进行操作的能力。 (6)可处理内部软件和外部硬件中断。 中断源多达256个。 (7)支持单处理器、多处理器系统工作。 2.8086微处理器内部结构 8086微处理器的内部结构由两大部分组成,即执行部件EU(ExecutionUnit)和总线接口部件BIU(BusInterfaceUnit)。 和一般的计算机中央处理器相比较,8086的EU相当于运算器,而BIU则类拟于控制器。 3.8086最小模式与最大模式及其系统配置 最小模式在结构上的特点表现为: 系统中的全部控制信号直接来自8086CPU。 与最小模式相比,最明显的不同是系统中的全部控制信息号不再由8086直接提供,而是由一个专用的总线控制器8288输出的。 4.8087与8089处理机简述 (1)8087协处理机 8087协处理机与8086组合在一起工作,以弥补8086在数值运算能力方面的不足,所以它又称为协处理机。 (2)8089I/O处理机 8089是一个带智能的I/O接口电路,相当于大型机中的通道,它将CPU的处理能力与DMA控制器结合在一起。 它具有52条基本指令,1MB的寻址能力,包含两个DMA通道。 8089也可以与8086联合在一起工作,执行自己的指令,进行I/O操作,只在必需时才与8086进行联系。 在8089的控制下,可以进行外设与存储器之间、存储器与存储器之间以及外设与外设之间的数据传输。 同时,8089还可以设定多种终止数据传输的方式。 5.总线时序 一个基本的总线周期包括4个时钟周期,即4个时钟状态T1、T2、T3和T4。 (二)80286\80386\80486微处理器 1.80286微处理器 (1)80286的特征 80286是一种高性能的16位微处理器,向上兼容8086/8088,可以有效地利用8086系列软件。 80286引入虚拟地址空间的概念,具有存储器管理功能,能为每一个任务分配多达1G字节的虚拟地址空间并映射到16M字节的物理地址中去。 80286具有保护功能,可对段的边界、属性和访问权等进行自动检查,通过四级环结构和任务之间相互隔离,可建立可靠性高的系统软件。 80286具有高效率的任务转换功能,适用于多用户、多任务系统。 80286工作时钟为8~12MHz,工作时钟多样化,便于组成高性能价格比的系统。 (2)80286的结构 80286内部结构中,除了EU执行单元外,总线接口部件BIU又细分成地址部件AU、指令部件IU和总线部件BU。 (3)80286的工作方式 80286微处理器有两种工作方式: 实地址方式和保护虚拟地址方式。 2.80386微处理器 (1)80386的特征 80386是一种灵活的32位微处理器,可以处理8位、16位、32位等多种类型的数据,有8个32位通用寄存器。 80386可直接输出32位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pc 资料