计算机基本工作原理

考点 1 计算机基本工作原理(1)

考什么

一、计算机中数据的表示

1.定点数与浮点数

(1)定点数

约定机器中所有数据的小数点位置是固定不变的。通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。前者为定点小数,后者为定点整数。当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为“下溢”;大于定点数能表示的最大值时,称为“上溢”,统称为“溢出”。

(2)浮点数

一个机器浮点数应当由阶码和尾数及其符号位组成,如图1-1所示。

 
图 1-1 浮点数

其中,尾数决定精度,阶码决定表示范围,最适合表示浮点数阶码的数字编码是移码。

2.数的机器码表示

(1)原码表示法符号位表示该数的符号,“0”表示正数,“1”表示负数,而数值部分仍保留着其真值的特征。零的原码的表示有“+0”和“ -0”之分,故有两种形式: [+0]原=000…000,[-0]原=100…000。

(2)反码表示法

符号的表示法与原码相同。正数的反码与正数的原码形式相同;

负数的反码符号位为 1,数值部分通过将负数原码的数值部分各位取反(0变1,1变0)得到。即除了第一位符号位外,其余都取反

(3)补码表示法

补码表示法是最适合进行数字加减运算的数字编码。对于 0,在补码情况下只有一种表示形式,即[+0]补=[-0]补=000…000。

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)


(4)移码表示法

是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长

为n,规定偏移量为2n.1,则移码定义如下:若X是纯整数,则[X]移=2n-1+X(-2n-1≤X<2n-I);若X是纯小数,则[X]补=1+X(-1≤X<1}。

例如: X=+1011 [X]移=11011   X=-1011 [X]移=00101   

移码与补码的关系: [X]移与[X]补的关系是符号位互为相反数(仅符号位不同),  例如: X=+1011 [X]补=01011 [X]移=11011   X=-1011 [X]补=10101 [X]移=00101

(5)阶码表示法

在机器中表示一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码,阶码指明了小数点在数据中的位置。

3.校验码

(1)奇偶校验码

奇偶校验码是一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法

从而使码距变为2。常用的奇偶校验码有三种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。

(2)海明码

海明码的构成方法是:在数据位之间插入 k个校验码,通过扩大码距来实现检错和纠错。设数据位是n位,校验位是k位,则n和k必须满足关系:2^k-1≥n+k 。

(3)循环冗余校验码(CRC)

循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式的 k个数据位和产生的r个校验位来进行编码,其编码长度为k+r。

4.各种数制之间的转换

常用的数制有二进制(基数为 2)、八进制(基数为 8)、十进制(基数为 10)和十六进制(基数为16),其间的转换关系如下:

(1)十六进制与二进制

十六进制表示法是用16个二进制数组成的,每 4位二进制数字表示一位十六进制数,十六进制的数字表示从0~9、A~F共16个字符组成。十六进制与二进制的转换就是一个十六进制字符与四位二进制数字的相互转换过程。

(2)十进制与二进制

十进制向二进制转换分两步进行:首先把该数的整数部分和小数部分转换为二进制,然后再把这两部分合并起来即可。十进制的整数部分向二进制转换是通过对十进制不断地除2取余数得到,十进制小数部分通过乘2取整的方法获得,直到小数部分为 0,所得到的整数部分就形成了二进制编码。

(3)八进制与二进制

二进制向八进制转换的方法是从小数点开始分别向左右每三位二进制数编成一组,若不够3位,则小数点左侧的最高位和右侧的最低位用“0”补充,每一组用对应的八进制的数码表示即可;八进制向二进制转换的方法是从小数点开始,把每一位八进制的数码转换成对应的3位二进制即可,其小数点左侧的最高位或右侧的最低位的0可以省去。

二、计算机组成和中央处理器 CPU

1.计算机组成(如图 1-2所示)

程序与数据,数据

 
(点击查看大图)图 1-2 计算机的组成

2.中央处理器指运算器和控制器的合称,即 CPU,主要功能有指令控制、操作控制、时间控制和数据加工

(1)运算器

运算器由算术逻辑单元(Arithmetic and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

运算器有如下两个主要功能:

①执行所有的算术运算,如加、减、乘、除等基本运算及附加运算。

② 执行所有的逻辑运算并进行逻辑测试,如与、或、非、零值测试或两个值的比较等。

(2)控制器

运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。

指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令,指令译码,按指令操作码执行,形成下一条指令地址等步骤。

①指令寄存器( IR)。当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

② 程序计数器(PC)。PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。

③地址寄存器(AR)。AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保持地址信息,直到内存的读/写操作完成为止。

④指令译码器( ID)。指令分为操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。

时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

(3)寄存器组

寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

怎么考

【试题 1-1】2011年 11月真题 1

若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入( 1)。

(1)A. PC(程序计数器) B. AR(地址寄存器)

C. AC(累加器) D. ALU(逻辑运算单元)

分 析:由于是采用直接寻址,指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址EA,即内存地址,该地址与指令的操作码一起存放在内存的代码段,但操作数一般存放在数据段中,所以必须先求出操作数的物理地址,然后才能在数据段中取得操作数。如操作数在数据段中,则物理地址=16×(DS)+EA。【答案: A】

【试题 1-2】2011年 11月真题 5

在CPU的寄存器中,(5)对用户是完全透明的。

(5)A. 程序计数器   B.指令寄存器

C. 状态寄存器   D.通用寄存器

分析:作为高速存储单元,微处理器内部有多种寄存器,用于暂时存放程序执行过程中的代码和指令。有些寄存器对应用人员来说是不可见的,不能直接控制。例如,保存指令代码的指令寄存器。所以它们被称为透明寄存器。这里的“透明”(Transparency)是计算机学科中常用的一个专业术语,表示实际存在,但从某个角度看好像没有。【答案: B】

【试题 1-3】2011年 11月真题 6

CPU中译码器的主要作用是进行( 6)。

(6)A. 地址译码   B.指令译码

C. 数据译码   D.选择多路数据至ALU

分析:译码器是控制器中的主要部件之一。计算机能且只能执行“指令”。指令由操作码和操作数组成。操作码表示要执行的操作性质,即执行什么操作,或做什么;操作数是操作码执行时的操作对象,即对什么数进行操作。计算机执行一条指定的指令时,必须首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能。这个分析工作由译码器来完成。

【答案: B】

【试题 1-4】2011年 5月真题 1

在CPU中用于跟踪指令地址的寄存器是(1)。

(1)A.地址寄存器(MAR) B.数据寄存器(MDR)

C.程序计数器(PC) D.指令寄存器(IR)

分析:程序计数器是用于存放下一条指令所在单元的地址的地方,执行指令时,CPU将自动修改程序计数器的内容,因此,在CPU中用于跟踪指令地址的寄存器就是程序计数器。地址寄存器保存当前CPU所访问的内存单元的地址;当CPU要执行一条指令时,先把它从内存取到数据缓冲寄存器中,再送入指令寄存器 IR暂存,指令译码器根据IR的内容产生各种微操作命令,控制其他的组成部件工作,完成所需的功能。

【答案: C】

【试题 1-5】2011年 5月真题 4

原码表示法和补码表示法是计算机中用于表示数据的两种编码方法,在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以( 4)。

(4)A.保证运算过程与手工运算方法保持一致 B.简化计算机运算部件的设计

C.提高数据的运算速度 D.提高数据的运算精度

分析:使用补码,可以将符号位和其他位统一处理,同时,减法也可以按照加法来处理。另外,两个用补码表示的数相加时,如果最高位有进位,则进位会被舍弃。可见,采用补码可以简化运算及其电路。

【答案: B】

【试题 1-6】2011年 5月真题 5

计算机中的浮点数由三部分组成:符号位S,指数部分 E(称为阶码)和尾数部分M。在总长度固定的情况下,增加E的位数或减少M的位数可以( 5)。

(5)A.扩大可表示的数的范围同时降低精度 B.扩大可表示的数的范围同时提高精度

C.减小可表示的数的范围同时降低精度 D.减小可表示的数的范围同时提高精度

分析

:浮点数能表示的数值范围主要由阶码决定,所表示数值的精度由尾数决定。可见在总长度固定的情况下,增加阶码的位数、减少尾数的位数可以扩大数值的范围同时降低精度。【答案: A】

【试题 1-7】2010年 11月真题 2

若某计算机采用8位整数补码表示数据,则运算(2)将产生溢出。

(2)A.-127+1 B.-127-1 C.127+1 D.127-1

分析:8位整数补码的表示范围为-128~+127。[-128]补=10000000,[127]补=01111111。对于选项C中,

很明显127+1=128超过了8位整数的表示范围。我们也可以通过计算来证明:

 

两个正数相加的结果是-128,产生错误的原因就是溢出。【答案: C】

【试题 1-8】2010年 11月真题 5

编写汇编语言程序时,下列寄存器中程序员可访问的是(5)。

(5)A.程序计数器(PC) B.指令寄存器(OR)

C.存储器数据寄存器(MDR) D.存储器地址寄存器(MAR)

分析:为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数

器PC的作用就是控制下一指令的位置,包括控制跳转。【答案: A】

【试题 1-9】2010年 5月真题 1

为实现程序指令的顺序执行,CPU (1)中的值将自动加1。

(1)A.指令寄存器(OR) B.程序计数器(PC)

C.地址寄存器(AR) D.指令译码器(ID)

分析:为了保证程序指令能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序设计数器PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。【答案:B】


【试题 1-10】2010年 5月真题 4

与 A ⊕ B等价的逻辑表达式是(4)。( ⊕表示逻辑异或,+表示逻辑加)

(4)A. A+B B. A ⊕ B C. A ⊕ B D. AB+ AB

分析:用真值表验证如下:

 

从上表可知, A ⊕ B与A ⊕ B等价。

【答案:B】

【试题 1-11】2010年 5月真题 20

若某整数的16位补码为FFFFH(H表示十六进制),则该数的十进制值为(20)。

(20) A. 0 B. -1 C. 216-1 D. -216+1

分析:根据补码定义,数值X的补码记作[X]补,如果机器字长为n,则最高位为符号位,0表示正号,1表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。如果已知X的补码为FFFFH,对应的二进制数为1111111111111111,则X的反码为1111111111111110,X的原码为1000000000000001,对应的十进制数为-1。【答案:B】

【试题 1-12】2009年 11月真题 1

以下关于CPU的叙述中,错误的是(1)。

(1)A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制

B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果

C.CPU中的控制器决定计算机运行过程的自动化

D.指令译码器是CPU控制器中的部件
分 析:本题主要考查CPU的组成及其部件的功能。

CPU的功能主要包括程序控制、操作控制、时间控制和数据处理。CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制,因此说法A正确。

CPU中的控制器用于控制整个CPU的工作,它决定了计算机运行过程中的自动化,因此说法C正确。

程序计数器PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分为两种情况,顺序执行和转移执行。在程序执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,执行指令时,CPU将自动修改PC的内容,当指令按照顺序执行时,PC加1。如果是转移指令,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到。因此PC没有临时存储算术/逻辑运算结果的功能。因此说法B错误。

CPU中的控制器包括指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)和指令译码器(ID)。因此说法D正确。综上所述,答案为 B。

【答案:B】

【试题 1-13】2009年 11月真题 3、4

浮点数的一般表示形式为N=2E×F,其中E为阶码,F为尾数。以下关于浮点表示的叙述中,错误的是(3)。两个浮点数进行相加运算,应首先(4)。

(3)A.阶码的长度决定浮点表示的范围,尾数的长度决定浮点表示的精度

B.工业标准IEEE 754浮点数格式中阶码采用移码表示,尾数采用原码表示

C.规格化指的是阶码采用移码、尾数采用补码

D.规格化表示要求将尾数的绝对值限定在区间[0.5,1)

(4)A.将较大的数进行规格化处理 B.将较小的数进行规格化处理

C.将这两个数的尾数相加 D.统一这两个数的阶码

分 析:本题主要考查浮点数的表示。【答案:C、B】浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度由尾数决定。为了充分利用尾数来表示

更多的有效数字,通常采用规格化浮点数。规格化就是将尾数的绝对值限定在区间[0.5,1)。工业标准 IEEE 754中阶码用移码来表示,尾数用原码表示。所以第3题的答案为C。

当两个浮点数进行相加操作时,首先要进行对阶操作,即使两个数的阶码相同,对阶操作就是把阶码小的数的尾数右移,答案为 B。

【试题 1-14】2009年 11月真题 5

以下关于校验码的叙述中,正确的是(5)。

(5)A.海明码利用多组数位的奇偶性来检错和纠错

B.海明码的码距必须大于等于1

C.循环冗余校验码具有很强的检错和纠错能力

D.循环冗余校验码的码距必定为1

分 析:本题考查校验码,主要考查海明码和循环冗余校验码。海明码是由贝尔实验室的Richard Hamming 设计的,它也是利用奇偶性来检错和纠错的校验方法。其构成方法是:在数据位值间插入k个校验位,通过扩大码距来实现检错和纠错。

循环冗余检验码(Cyclic Redundancy Check,CRC)广泛用在数据通信领域和磁介质存储系统中,它利用生成多项式的k个数据位和产生的r个校验位来进行编码,其编码长度为k+r。其由两部分组成,左边为信息码(数据),右边为检验码。若信息码占k位,则检验码占n-k位。其中,n为CRC码的字长,所以又称为(n,

k)码。检验码由信息码产生,校验码位数越长,该代码的校验能力就越强。

【答案:A】

【试题 1-15】2009年 5月真题 1

海明校验码是在 n 个数据位之外增设 k 个校验位,从而形成一个 k+n 位的新的码字,使新的码字的码距比较均匀地拉大。n与k的关系是(1)。

(1)A.2k-1≥n+k B. 2n-1≤n+k C. n =k D. n -1≤k

分 析:海明码的构成方法是:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。设数据位是n位,校验位是k位,则n和k必须满足关系:2k-1≥n+k 。

【答案:A】

【试题 1-16】2009年 5月真题 5

计算机中常采用原码、反码、补码和移码表示数据,其中,+0或-0 编码相同的是(5)。

(5)A.原码和补码 B.反码和补码 C.补码和移码 D.原码和移码

分 析:原码、反码、补码以及移码是计算机的数据表示形式,需掌握牢固。

+0和-0的表示比较特殊,在此做个总结:

原码: [+0]原=0 0000000  [-0]原=1 0000000

反码: [+0]反=0 0000000  [-0]反=1 1111111

补码: [+0]补=[-0]补=0 0000000               

移码: [+0]移=[-0]移=1 0000000

【答案:C】

【试题 1-17】2008年 12月真题 2

计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,则应将(2)。

(2)A.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术左移

B.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术右移

C.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术左移

D.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术右移

分 析:本题考查的是浮点数的加减运算,要经过几个步骤如下:

①対阶,即使两个数的阶码相同。

②求尾数和(差)。

③结果规格化并判断溢出。若运算结果所得的尾数不是规格化的数,则需要进行规格化处理。当尾数溢出时,需要调整阶码。

④舍入。在对结果右规时,尾数的最低位将因溢出而丢掉。

⑤溢出判别。以阶码为准,若阶码溢出,则运算结果溢出;若阶码下溢(小于最小值),则结果为0;

否则结果正确无溢出。【答案:D】

【试题 1-18】2008年 12月真题 3

在CPU中,( 3)可用于传送和暂存用户数据,为ALU执行算术逻辑运算提供工作区。

(3)A.程序计数器 B.累加寄存器 C.程序状态寄存器 D.地址寄存器

分 析:程序寄存器(PC)、累加寄存器(AC)、程序状态寄存器(PSW)和地址寄存器(AR)都是 CPU中常用的寄存器。其功能分别如下:

PC——具有寄存信息和计数两种功能。在程序执行之前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容是程序第一条指令的地址;执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。

AC——一个通用的寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。(由此答案显然是B)。 PSW——保存由算术指令和逻辑指令运行或测试的结果建立的各种条码内容,主要分为状态标志和控制标志。通常,一个算术操作产生一个运算结果,一个逻辑操作则产生一个判决。 AR——保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保持地址信息,直到内存的读/写操作完成为止。【答案:B】

【试题 1-19】2008年 12月真题 5

下面关于校验方法的叙述,( 5)是正确的。

(5)A.采用奇偶校验可检测数据传输过程中出现一位数据错误的位置并加以纠正

B.采用海明校验可检测数据传输过程中出现一位数据错误的位置并加以纠正

C.采用海明校验,校验码的长度和位置可随意设定

D.采用CRC校验,需要将校验码分散开并插入数据的指定位置中

分 析:本题考查三种考生必须掌握的校验码:奇偶校验码、海明校验码和循环冗余校验码(CRC)。

由奇偶校验码的工作原理可知,这种校验方法只能检测一位的错误,并不能像海明校验那样既可以检测数据传输过程中出现一位数据错误的位置且加以纠正,由此可知A错B对。另外海明码对于信息位与校验位的放置是有约定的,不能随意设定,所以C错。对于CRC码,其校验位都是置于编码的最后部分(最右端)的,所以D也是错误的。【答案:B】

【试题 1-20】2008年 5月真题 1

在计算机体系结构中,CPU内部包括程序计数器PC、存储器数据寄存器MDR、指令寄存器IR和存储器地址寄存器MAR等。若CPU要执行的指令为:MOV R0,#100(即将数值100传送到寄存器R0中),则CPU首先要完成的操作是(1)。

(1)A.100→R0 B.100→MDR C.PC→MAR D.PC→IR

分 析:本题还是考查CPU的控制器中的几个常用寄存器的作用,当然还要清楚指令的执行步骤,如下图:

 

读取指令时,先将PC中的指令地址送到地址寄存器中,然后才能读取主存读内容,并传至IR中,然后PC中变为下一条指令的地址。所以CPU要想执行指令MOV R0,#100,首先要把PC中的内容送到地址寄存器中。

【答案:C】
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值