版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、码制本文讲解(jingji)了计算机的原码,反码(fn m)和补码,并且进行了深入探求了为何要使用(shyng)反码和补码,更进一步的论证了为何可以用反码, 补码的加法计算原码的减法。一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。2、真
2、值因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = 000 0001 = 1二. 原码, 反码, 补码的基础概念和计算方法在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码
3、方式.1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:+1原= 0000 0001-1原= 1000 0001第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:1111 1111 , 0111 1111即-127 , 127原码是人脑最容易理解和计算的表示方式.2. 反码反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.+1 = 00000001原= 00000001反-1 = 10000001原= 11111110反可见如果一个(y )反码表示的是负数, 人脑无法直观
4、的看出来它的数值. 通常要将其转换成原码再计算.3. 补码(b m)补码(b m)的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)+1 = 00000001原= 00000001反= 00000001补-1 = 10000001原= 11111110反= 11111111补对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.三. 为何要使用原码, 反码和补码在开始深入学习前, 我的学习建议是先死记硬背上面的原码, 反码和补码的表示方式以及计算方法.现在我们知道了计算机可以有
5、三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:+1 = 00000001原= 00000001反= 00000001补所以不需要过多解释. 但是对于负数:-1 = 10000001原= 11111110反= 11111111补可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?首先, 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别符号位显然会让计算机的基础电路设计变得十
6、分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = 00000001原+ 10000001原= 10000010原= -2如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这就是为何计算机内部不使用原码表示一个数.为了解决原码做减法的问题, 出现了反码:计算
7、十进制的表达式: 1-1=01 - 1 = 1 + (-1) = 0000 0001原+ 1000 0001原= 0000 0001反+ 1111 1110反= 1111 1111反= 1000 0000原= -0发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在0这个特殊的数值上. 虽然人们(rn men)理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有0000 0000原和1000 0000原两个(lin )编码表示0.于是补码的出现, 解决(jiju)了0的符号以及两个编码的问题:1-1 = 1 + (-1) = 0000 0001原+ 1000
8、 0001原= 0000 0001补+ 1111 1111补= 0000 0000补=0000 0000原这样0用0000 0000表示, 而以前出现问题的-0则不存在了.而且可以用1000 0000表示-128:(-1) + (-127) = 1000 0001原+ 1111 1111原= 1111 1111补+ 1000 0001补= 1000 0000补-1-127的结果应该是-128, 在用补码运算的结果中, 1000 0000补就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示1000 0000补算出来的
9、原码是0000 0000原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为-127, +127, 而使用补码表示的范围为-128, 127.因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: -231, 231-1 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.四 原码, 反码, 补码 再深入计算机巧妙地把符号位参与运算, 并且将减法变成了加法, 背后蕴含了怎样的数学原理呢?将钟表想象成是一个1位的12进制数. 如果当前时间是6点, 我希
10、望将时间设置成4点, 需要怎么做呢?我们可以:1. 往回拨2个小时: 6 - 2 = 42. 往前拨10个小时: (6 + 10) mod 12 = 43. 往前拨10+12=22个小时: (6+22) mod 12 =42,3方法中的mod是指取模操作, 16 mod 12 =4 即用16除以12后的余数是4.所以钟表往回拨(减法)的结果可以用往前拨(加法)替代!现在的焦点就落在了如何用一个正数, 来替代一个负数. 上面的例子我们能感觉出来一些端倪, 发现一些规律. 但是数学是严谨的. 不能靠感觉.首先介绍一个数学中相关的概念: 同余两个整数a,b,若它们除以整数m所得的余数相等,则称a,b
11、对于模m同余记作 a b (mod m)读作 a 与 b 关于模 m 同余。举例说明:4 mod 12 = 4,16 mod 12 = 4,28 mod 12 = 4,所以4, 16, 28关于模 12 同余.负数取模正数进行mod运算是很简单的. 但是负数呢?下面是关于mod运算的数学定义:下面是使用L和J替换上图的取下界(xi ji)符号:x mod y = x - y x / y J上面公式的意思(y s)是:x mod y等于 x 减去 y 乘上 x与y的商的下界.以 -3 mod 2 举例(j l):-3 mod 2= -3 - 2x -3/2 = -3 - 2x-1.5= -3 -
12、 2x(-2)= -3 + 4 = 1所以:(-2) mod 12 = 12-2=10,(-4) mod 12 = 12-4 = 8,(-5) mod 12 = 12 - 5 = 7开始证明再回到时钟的问题上:回拨2小时 = 前拨10小时,回拨4小时 = 前拨8小时,回拨5小时= 前拨7小时,注意, 这里发现的规律!结合上面学到的同余的概念.实际上:(-2) mod 12 = 10,10 mod 12 = 10,-2与10是同余的,(-4) mod 12 = 8,8 mod 12 = 8,-4与8是同余的.距离成功越来越近了. 要实现用正数替代负数, 只需要运用同余数的两个定理:反身性定理:
13、a a (mod m) ,这个定理是很显而易见的。线性运算定理:如果a b (mod m),c d (mod m) 那么:(1)a c b d (mod m)(2)a * c b * d (mod m)所以:7 7 (mod 12),(-2) 10 (mod 12),7 -2 7 + 10 (mod 12)现在我们为一个负数, 找到了它的正数同余数. 但并不是7-2 = 7+10, 而是 7 -2 7 + 10 (mod 12) , 即计算结果的余数相等.接下来回到二进制的问题上, 看一下: 2-1=1的问题.2-1=2+(-1) = 0000 0010原+ 1000 0001原= 0000
14、0010反+ 1111 1110反先到这一步, -1的反码表示是1111 1110. 如果这里将1111 1110认为是原码, 则1111 1110原 = -126, 这里将符号位除去, 即认为是126.发现有如下规律:(-1) mod 127 = 126,126 mod 127 = 126即:(-1) 126 (mod 127),2-1 2+126 (mod 127)2-1 与 2+126的余数结果是相同的! 而这个余数, 正式我们(w men)的期望的计算结果: 2-1=1所以说一个数的反码, 实际上是这个数对于一个膜的同余数. 而这个膜并不是我们的二进制, 而是所能表示(biosh)的最
15、大值! 这就和钟表一样, 转了一圈后总能找到在可表示范围内的一个正确的数值!而2+126很显然相当于钟表转过了一轮, 而因为符号位是参与计算的, 正好(zhngho)和溢出的最高位形成正确的运算结果.既然反码可以将减法变成加法, 那么现在计算机使用的补码呢? 为什么在反码的基础上加1, 还能得到正确的结果?2-1=2+(-1) = 0000 0010原+ 1000 0001原= 0000 0010补+ 1111 1111补如果把1111 1111当成原码, 去除符号位, 则:0111 1111原= 127其实, 在反码的基础上+1, 只是相当于增加了膜的值:(-1) mod 128 = 127
16、,127 mod 128 = 127,2-1 2+127 (mod 128)此时, 表盘相当于每128个刻度转一轮. 所以用补码表示的运算结果最小值和最大值应该是-128, 128.但是由于0的特殊情况, 没有办法表示128, 所以补码的取值范围是-128, 127周期时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则
17、时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的8051单片机的时钟范围是1.2MHz-12MHz。在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。机器周期在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本
18、操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。机器周期:通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间指令周期指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不
19、同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。总线周期1.微处理器是在时钟信号CLK控制下按节拍工作(gngzu)的。8086/8088系统的时钟频率为4.77MHz,每个时钟周期约为200ns。2.由于存贮器和I/O端口是挂接在总线(zn xin)上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问
20、所需时间称为一个总线周期。一个总线周期一般包含4个时钟(shzhng)周期,这4个时钟周期分别称4个状态即T1状态、T2状态、T3状态和T4状态。总结一下,它们之间的关系就是,指令周期由若干个机器周期组成,总线周期一般由4个时钟周期组成。机器周期和总线周期机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读写,因而包含总线周期,但是有时可能与总线读写无关,所以,并无明确的相互包含的关系。指令周期:是CPU的关键指标,指取出并执行一条指令的时间。一般以机器周期为单位,分单指令执行周期、双指令执行周期等。现在的处理器的大部分指令(ARM、DSP)均采用单指令执行周期。机器周期:完成
21、一个基本操作的时间单元,如取指周期、取数周期。时钟周期:CPU的晶振的工作频率的倒数。(fantaxy:晶振一次需要的时间)例子:22.1184MHZ的晶振,它的晶振周期、时钟周期和机器周期分别是多少?以51为例,晶振22.1184M,时钟周期(晶振周期)就是(1/22.1184)s,一个机器周期包含12个时钟周期,一个机器周期就是0.5425s。一个机器周期一般是一条指令花费的时间,也有些是2个机器周期的指令,DJNZ,是双周期指令.周期:就是时间,完成一次任务的时间时钟周期:这个名字的英文clockcycle;clockperiod;时钟是用来计时的,是一个基本单位;在计算机中,cpu的晶
22、振时间就是一个最最基本的单位,因此时钟周期很基本,别的周期都用他来参考!1、时钟周期=振荡周期,名称不同而已,都是等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1/12M。2、机器周期,8051系列单片机的机器周期=12*时钟周期,之所以这样分是因为单个时钟周期根本干不了一件完整的事情(如取指令、写寄存器、读寄存器等),而12个时钟周期就能基本完成一项基本操作了。3、指令周期。一个机器周期能完成一项基本操作,但一条指令常常是需要多项基本操作结合才能完成,完成一条指令所需的时间就是指令周期,当然不同的指令,其指令周期就不一样的了。存储周期存储周期(memory cycle t
23、ime):连续启动两次读或写操作所需间隔的最小时间,体现主存的速度 (纳秒ns) HYPERLINK /view/87697.htm t /view/_blank 存储器的两个基本操作为读出与写入,是指将信息在 HYPERLINK /view/1223079.htm t /view/_blank 存储单元与存储 HYPERLINK /view/6159.htm t /view/_blank 寄存器(MDR)之间进行读写。 HYPERLINK /view/87697.htm t /view/_blank 存储器 HYPERLINK /view/4742031.htm t /view/_blank
24、 从接收读出命令到被读出信息稳定在MDR的输出端为止的时间间隔,称为取数时间TA;两次独立的存取操作之间所需的最短时间称为存储周期TMC。内存的 HYPERLINK /view/368187.htm t /view/_blank 存取周期一般为60ns-120ns。单位以纳秒(ns)度量,换算关系1ns=10-6ms=10-9s,常见的有60ns、70ns、80ns、120ns等几种,相应在 HYPERLINK /view/1365.htm t /view/_blank 内存条上标为-6、-7、-8、-120等字样。这个数值越小,存取速度越快,但价格也便随之上升。在选配内存时,应尽量挑选与CP
25、U HYPERLINK /view/65714.htm t /view/_blank 系统总线 HYPERLINK /view/85561.htm t /view/_blank 时钟周期相匹配的 HYPERLINK /view/1365.htm t /view/_blank 内存条存储周期,通常用访问周期T(又称 HYPERLINK /view/368187.htm t /view/_blank 存取周期等)表示,该概念与 HYPERLINK /view/93803.htm t /view/_blank 存取时间是不同的。存储系统的存储周期与命中率H的关系非常大。字长字长字长是直接用 HYPE
26、RLINK /view/2418160.htm t /view/_blank 二进制代码指令表达的 HYPERLINK /view/246483.htm t /view/_blank 计算机语言,指令是用0和1组成的一串 HYPERLINK /view/41.htm t /view/_blank 代码,它们有一定的 HYPERLINK /view/346281.htm t /view/_blank 位数,并分成若干字长段,各段的 HYPERLINK /subview/237708/11062012.htm t /view/_blank 编码表示不同的含义,例如某台计算机字长为16位,即有16个
27、二进制 HYPERLINK /view/209670.htm t /view/_blank 数组成一条 HYPERLINK /view/178461.htm t /view/_blank 指令或其它 HYPERLINK /view/1527.htm t /view/_blank 信息。16个0和1可组成各种 HYPERLINK /view/738955.htm t /view/_blank 排列组合,通过 HYPERLINK /view/55402.htm t /view/_blank 线路变成 HYPERLINK /view/1520474.htm t /view/_blank 电信号,让
28、HYPERLINK /view/3314.htm t /view/_blank 计算机执行各种不同的操作在同一时间中处理 HYPERLINK /view/18536.htm t /view/_blank 二进制数的 HYPERLINK /view/346281.htm t /view/_blank 位数叫字长。通常称处理字长为8 HYPERLINK /view/346281.htm t /view/_blank 位数据的 HYPERLINK /view/2089.htm t /view/_blank CPU叫8位CPU,32位CPU就是在同一时间内处理字长为32位的 HYPERLINK /vi
29、ew/18536.htm t /view/_blank 二进制数据。 HYPERLINK /view/18536.htm t /view/_blank 二进制的每一个0或1是组成二进制的最小单位,称为一个比特(bit).字长:一般说来, HYPERLINK /view/3314.htm t /view/_blank 计算机在同一时间内处理的一组 HYPERLINK /view/18536.htm t /view/_blank 二进制数称为一个 HYPERLINK /view/3314.htm t /view/_blank 计算机的“字”,而这组二进制数的 HYPERLINK /view/346
30、281.htm t /view/_blank 位数就是“字长”。字长与 HYPERLINK /view/3314.htm t /view/_blank 计算机的功能和用途有很大的关系,是 HYPERLINK /view/3314.htm t /view/_blank 计算机的一个重要技术指标。字长直接反映了一台 HYPERLINK /view/3314.htm t /view/_blank 计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。在其他指标相同时,字长越大 HYPERLINK /vi
31、ew/3314.htm t /view/_blank 计算机的处理数据的 HYPERLINK /view/36819.htm t /view/_blank 速度就越快。早期的 HYPERLINK /view/303807.htm t /view/_blank 微机字长一般是8位和16位,386以及更高的处理器大多是32位。目前市面上的 HYPERLINK /view/3314.htm t /view/_blank 计算机的处理器大部分已达到64位。字长(z chn)由 HYPERLINK /view/1125.htm t /view/_blank 微处理器对外数据通路的 HYPERLINK /
32、view/712987.htm t /view/_blank 数据总线条数(tio sh)决定通俗(tn s)讲解字长是CPU的主要技术指标之一,指的是CPU一次能 HYPERLINK /view/494465.htm t /view/_blank 并行处理的 HYPERLINK /view/18536.htm t /view/_blank 二进制 HYPERLINK /view/346281.htm t /view/_blank 位数,字长总是8的整数倍,通常PC机的字长为16位(早期),32位,64位。PC机可以通过编程的方法来处理任意大小的数字,但数字越大,PC机就要花越长的时间来计算。
33、PC机在一次操作中能处理的最大数字是由PC机的字长确定的。我们先来看一下人脑是如何进行计算的,例如56则立即可以得到答案是30,但对于5566,就不可能立即得到正确的答案,这就是说55或66已走出了人脑的“字长”,这是为了得出结果,就必须把复杂的问题(如5566)分解成易于处理的问题(如5566可分解为5060,506,560,56),然后再综合起来,得出结果。同样PC机也是这样处理问题的,一台16位字长的PC机,可以直接处理2的16次方(65536)之内的数字,对于超过65536的数字就需要分解的方法来处理。32位pc机比16位机优越的原因就在于它在一次操作中能处理的数字大,32位字长的PC
34、机能直接处理的数字高达40亿(2的32次方),能处理的的数字越大,则操作的次数就越少,从而系统的效率也就越高。诚然,现在CPU大多是64位的,但大多都以32位字长运行,都没能展示它的字长的优越性,因为它必须与64位 HYPERLINK /view/37.htm t /view/_blank 软件(如64位的 HYPERLINK /view/880.htm t /view/_blank 操作系统等)相辅才成,也就是说,字长受 HYPERLINK /view/8343.htm t /view/_blank 软件系统的制约,例如,在32位软件系统中64位字长的CPU只能当32位用。详述字在 HYPE
35、RLINK /view/3314.htm t /view/_blank 计算机中,一串数码作为一个整体来处理或运算的,称为一个 HYPERLINK /view/3314.htm t /view/_blank 计算机字,简称字。字通常分为若干个 HYPERLINK /view/60408.htm t /view/_blank 字节(每个字节一般是8位)。在 HYPERLINK /view/87697.htm t /view/_blank 存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用 HYPERLINK /view/346281.htm t /view/_blank 位数
36、来表示。在计算机的 HYPERLINK /view/147768.htm t /view/_blank 运算器、 HYPERLINK /view/122229.htm t /view/_blank 控制器中,通常都是以字为单位进行传送的。字出现在不同的地址其含义是不相同。例如,送往 HYPERLINK /view/122229.htm t /view/_blank 控制器去的字是指令,而送往 HYPERLINK /view/147768.htm t /view/_blank 运算器去的字就是一个数。字长字长是指 HYPERLINK /view/3314.htm t /view/_blank 计
37、算机的每个字所包含的 HYPERLINK /view/346281.htm t /view/_blank 位数。根据 HYPERLINK /view/3314.htm t /view/_blank 计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。计算的字长是指它一次可处理的 HYPERLINK /view/18536.htm t /view/_blank 二进制数字的数目。计算机处理数据的速率,自然和它一次能加工的 HYPERLINK /view/346281.htm t /view/_blank 位数以及进行运算
38、的快慢有关。如果一台 HYPERLINK /view/3314.htm t /view/_blank 计算机的字长是另一台计算机的两倍,即使两台计算机的 HYPERLINK /view/36819.htm t /view/_blank 速度相同,在相同的时间内,前者能做的工作是后者的两倍。一般地,大型 HYPERLINK /view/3314.htm t /view/_blank 计算机的字长为3264位, HYPERLINK /view/532177.htm t /view/_blank 小型计算机为1632位,而 HYPERLINK /view/22503.htm t /view/_bla
39、nk 微型计算机为4一16位。字长是衡量 HYPERLINK /view/3314.htm t /view/_blank 计算机性能的一个重要因素。字节字节是指一小组相邻的 HYPERLINK /view/18536.htm t /view/_blank 二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的 HYPERLINK /view/19009.htm t /view/_blank 单位。在 HYPERLINK /view/22503.htm t /view/_blank 微型计算机中,通常用多少字节来表示 HYPERLINK /vi
40、ew/87697.htm t /view/_blank 存储器的 HYPERLINK /view/168524.htm t /view/_blank 存储容量。4双倍字长双倍字长是指 HYPERLINK /view/3314.htm t /view/_blank 计算机内部参与运算的数的 HYPERLINK /view/346281.htm t /view/_blank 位数。它决定着 HYPERLINK /view/3314.htm t /view/_blank 计算机内部寄存器、ALU和 HYPERLINK /view/712987.htm t /view/_blank 数据总线的 HYP
41、ERLINK /view/346281.htm t /view/_blank 位数,直接影响着 HYPERLINK /view/126147.htm t /view/_blank 机器的硬件规模和造价。双倍字长直接反映了一台计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。微型机的字长通常为4位、8位、16位和32位,64位字长的高性能 HYPERLINK /view/22503.htm t /view/_blank 微型计算机也已推出。双倍字长对 HYPERLINK /view/3314.h
42、tm t /view/_blank 计算机计算精度的影响:4位字长:24=16;16位字长:216=65536=64K32位字长:232=4,294,967,296=4G;64位字长:2641.84451019 HYPERLINK /view/712987.htm t /view/_blank 数据总线DB用于传送数据信息。 HYPERLINK /view/712987.htm t /view/_blank 数据总线是双向三态形式的总线,即他既可以把CPU的 HYPERLINK /view/5593592.htm t /view/_blank 数据传送到 HYPERLINK /view/876
43、97.htm t /view/_blank 存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。 HYPERLINK /view/712987.htm t /view/_blank 数据总线的 HYPERLINK /view/346281.htm t /view/_blank 位数是 HYPERLINK /view/22503.htm t /view/_blank 微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel8086 HYPERLINK /view/1125.htm t /view/_blank 微处理器字长16位,其 HYPERLINK /view/253
44、223.htm t /view/_blank 数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以指令代码或状态信息,有时甚至是一个 HYPERLINK /view/11679234.htm t /view/_blank 控制信息,因此,在实际工作中, HYPERLINK /view/712987.htm t /view/_blank 数据总线上传送的并不一定仅仅是真正意义上的数据。 HYPERLINK /view/238412.htm t /view/_blank 地址总线AB是专门用来传送地址的,由于(yuy)地址只能从CPU传向外部 HYPERLINK /
45、view/87697.htm t /view/_blank 存储器或 HYPERLINK /view/962212.htm t /view/_blank I/O端口,所以(suy)地址总线总是单向三态的,这与 HYPERLINK /view/712987.htm t /view/_blank 数据总线不同(b tn)。 HYPERLINK /view/238412.htm t /view/_blank 地址总线的 HYPERLINK /view/346281.htm t /view/_blank 位数决定了CPU可 HYPERLINK /view/714774.htm t /view/_bla
46、nk 直接寻址的内存空间大小,比如8位 HYPERLINK /view/303807.htm t /view/_blank 微机的地址总线为16位,则其最大可 HYPERLINK /view/2007755.htm t /view/_blank 寻址空间为216=64KB,16位微型机的地址总线为20位,其可寻址空间为220=1MB。一般来说,若 HYPERLINK /view/238412.htm t /view/_blank 地址总线为n位,则可 HYPERLINK /view/2007755.htm t /view/_blank 寻址空间为2(n-10) HYPERLINK /view/
47、60408.htm t /view/_blank 字节。 HYPERLINK /view/712982.htm t /view/_blank 控制总线CB用来传送 HYPERLINK /view/8407048.htm t /view/_blank 控制信号和 HYPERLINK /view/3039272.htm t /view/_blank 时序信号。 HYPERLINK /view/8407048.htm t /view/_blank 控制信号中,有的是 HYPERLINK /view/1125.htm t /view/_blank 微处理器送往 HYPERLINK /view/8769
48、7.htm t /view/_blank 存储器和I/O接口电路的,如读/写信号, HYPERLINK /view/1346927.htm t /view/_blank 片选信号、 HYPERLINK /view/192988.htm t /view/_blank 中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、 HYPERLINK /view/4507848.htm t /view/_blank 复位信号、总线请求信号、限备就绪信号等。因此, HYPERLINK /view/712982.htm t /view/_blank 控制总线的传送方向由具体 HYPERLINK /
49、view/8407048.htm t /view/_blank 控制信号而定,一般是双向的,控制总线的 HYPERLINK /view/346281.htm t /view/_blank 位数要根据系统的实际控制需要而定。实际上 HYPERLINK /view/712982.htm t /view/_blank 控制总线的具体情况主要取决于CPU。机器字长机器字长也就是 HYPERLINK /view/147768.htm t /view/_blank 运算器进行定点数运算的字长,通常也是CPU内部 HYPERLINK /view/1866929.htm t /view/_blank 数据通路
50、的宽度。即字长越长,数的表示范围也越大,精度也越高。机器的字长也会影响机器的 HYPERLINK /view/148612.htm t /view/_blank 运算速度。倘若 HYPERLINK /view/32465.htm t /view/_blank CPU字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响整机的运行速度。机器字长与 HYPERLINK /view/1372797.htm t /view/_blank 主存储器字长通常是相同的,但也可以不同。不同的情况下,一般是 HYPERLINK /view/1372797.htm t /view/_blank 主存储器字长
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论