计算机组成原理必备基础知识(下)

计算机组成原理必备基础知识(上)
计算机组成原理必备基础知识(中)
计算机组成原理必备基础知识(下)

第六章 计算机的运算方法(难点)

1.掌握有原码,补码,反码,移码的表示方法

假设 n 为机器数的位数(如一个字节,则 n = 8),则以下给出原码,反码,补码,移码的定义。

原码定义:原码定义
反码定义:
在这里插入图片描述
补码定义: 在这里插入图片描述
移码定义:
在这里插入图片描述

了解计算机的内部运算,从机器数开始讲起

(1).机器数
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机 中用一个数的最高位存放符号, 正数为0, 负数为1.

(2).真值
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

(3).原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.

(4).反码
反码的表示方法是: 正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反

(5) 补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补

(6) 移码
移码的表示方法为:
在补码的基础上,每一个数值加上2n-1,如原码的范围 -2n-1 ~ 2n-1-1 (-128 ~ - 127 )
,所有的数据向后平移128,则移码的范围为: (0 ~ 255 )

2.补码求原码,原码求补码,然后求真值的方法。

(1)通过原码求补码:符号位不变,各位取反,末位加1;
(2)通过补码求原码:
①符号位不变,各位取反,末位加1;
②从右往左数,遇到第一个1不变,其它取反

3.原码中0有两种表示方法(正零和负零),补码中0只有一种表示方法(正零和负零的表示方法)

原码: 0 0000000 (正零) 1 0000000 (负零)
补码:0 0000000 (正零) 1 0000000(-128)

所以:补码比原码表示的范围多1个,这一个就是,原码中的负零,在补码中表示-128

4.假设有符号数的位数为8(包括符号位),补码能表示的真值范围?

补码能表示的真值范围位-128 ~ +127

6.什么是定点表示?什么是浮点表示?

(1)定点表示:小数点固定某一位置的数为定点数
(2)浮点表示:小数点位置可以浮动的数。

7.浮点数在机器中的表示形式,由哪几部分组成?

由尾数,数符,阶码,阶符四部分组成。

8.规格化浮点数的表示范围(最大正数,最小正数,最大负数,最小负数)的计算方法。

9.IEEE754标准规定的浮点数由哪几部分组成?

由数符,阶码(含阶符)以及尾数组成。

10.IEEE754标准规定的浮点数中,阶码和尾数用什么形式表示?

阶码用移码表示,阶码包括阶符n位,其偏移量是2n-1,尾数用原码表示。

11.float占多少位?double占多少位?

float为短实数,占32位,其中阶码8位,尾数23位,符号位1。
double为长实数,占64位,其中阶码占11位,尾数为52位,符号位1。

12.对正数进行算术移位,当正数采用原码,补码,反码时,左移或右移时,低位或高位填补什么代码?

对于正数:
其源码,补码,反码均等于真值,
左移时,低位填补0,右移时,低位移丢,高位补零

13.对于负数进行算术移位,当负数采用源码,补码,反码时,左移或右移时,低位或高位填补什么代码?

对于源码,左移或右移时,低位或高位均填补0;
对于补码:左移时,低位填补0,右移时高位填补1;
对于反码:左移或右移时,低位或高位均填补1

14.什么是逻辑移位?

逻辑移位是对无符号数的移位,由于无符号数不存在符号位,
左移时,高位移丢,低位补0。
右移时,低位移丢,高位补0.

15.加法和减法时,什么情况下可能能发生溢出?如何简单判断发生溢出?

(1)正数加正数,正数减负数,负数加负数,负数减正数时,可能会发生溢出。
(2)如果参数参加操作的两个数符号相同(转换成补码的加法),其结果与源操作数符号不同,即为溢出。
(3)如果补码采用1位符号位,如果最高有效位的进位和符号位的进位不同,则发生溢出。

16.定点乘法运算可以使用加法和移位来实现吗?
可以。

17.浮点加减运算基本按照哪几步来进行?

(1)对阶:使小数点对齐;
(2)尾数求和:将对阶后的两个尾数按照定点加减运算规则求和;
(3)规格化:尾数规格化
(4)舍入:尾数右规时,丢失数值位;
(5)溢出判断:判断结果是否溢出

18.如何判断浮点运算结果是否溢出?

阶码是否超出了其表示范围。(使用2个符号位判断溢出)

第七章 指令系统

1.什么是机器指令?什么是系统指令系统?

(1)机器指令:每一条机器语言的语句;
(2)指令系统:全部指令的集合

2.一条指令包含哪两个主要部分?请简要说明各部分作用。

(1)操作码:指明指令要完成的操作;
(2)地址码:指明指令要操作的数据或数据来源;

3.操作码长度有固定长度和可变长度两种,各自有什么优点?

(1)固定长度:便于硬件设计,指令译码时间短;
(2)可变长度:压缩了操作码平均长度;

4.指令中地址码中的地址可以是哪些设备的地址?

可以是主存地址,寄存器地址或者I/O设备的地址;

5.指令中地址的个数可以有几个?

四地址,三地址,二地址,一地址及零地址;

6.假设指令中有四个地址,三个地址,两个地址以及一个地址,各自需要访存几次?

(1)四地址:访存5次 (取指令指令,根据地址码的个数,访问内存几次)
(2)三地址:访存4次
(3)两地址:访存3次
(4)一地址:访存2次

7.当使用寄存器代替指令字中的地址码字段后,有哪些优点?

(1)扩大指令字的寻址范围;
(2)缩短指令字字长
(3)减少了访存次数

8.数据在存储其中存储时,为什么要按照边界对齐?

减少访存次数。

9.寻址方式包括哪两类?

(1)指令寻址:下一条要执行的指令的指令地址;
(2)数据寻址:确定本指令的操作数的地址;

10.什么是形式地址?什么是有效地址?

(1)形式地址:指令的地址码字段通常都不代表操作数的真实地址,成为形式地址,记为A;
(2)有效地址:操作数的真实地址,记为EA,由寻址特征和形式地址共同决定。

11.了解各种寻址方式的概念及根据形式地址形成有效的方式。

立即寻址,直接寻址,隐含寻址,间接寻址,寄存器寻址,寄存器寻址,基址寻址(隐式或显式),变址寻址,相对寻址,栈堆寻址

12.什么是RISC,什么是CISC?

RISC:精简指令集;
CISC:复杂指令集;

猜你喜欢

转载自blog.csdn.net/qq_38173631/article/details/104422198