计算机组成原理第四次作业
4.1 解释下列名词
指令
计算机中有一股控制信息流,它使得计算机按人们预先编制好的程序工作。
这些控制信息就是控制计算机执行某种操作(如加、减、传送、转移等)的命令,称为指令
指令系统
计算机中所有指令的集合称为该计算机的指令系统
操作码
操作码字段用于解决进行何种操作的问题
地址码
地址码字段用于解决处理什么操作数的问题,地址码可以包括多个操作数
寻址方式
寻址方式就是寻找指令或操作数有效地址的方法。
程序计数器PC
程序计数器是用于存放下一条指令所在单元的地址的寄存器。
有效地址
形式地址结合寻址方式,可以计算出操作数在存储器中的真实地址,也就是有效地址,表示为(EA)。
扩展操作码
可以采用扩展操作码技术来实现变长操作码,其基本思想是操作码的长度随地址码数目减少而增加。
CISC
CISC是复杂指令系统计算机的简称,这类计算机指令系统复杂,寻址方式种类较多,指令执行效率低。
RISC
RISC是精简指令集计算机的简称,这类计算机指令系统简单,寻址方式种类少,指令执行效率高。
4.2 选择题
-
这里操作码(+寻址方式位)=8位;通用寄存器16个,即2^4,故寄存器编号需要4位;
源操作数采用寄存器寻址,需要一个寄存器,占4位;
目的操作数采用基址寻址,同样需要一个寄存器,又占4位,余下偏移地址位数为32-8-4-4=16位,按要求偏移地址用补码表示,16位补码取值范围为-32768~+32767.
选
A
-
先取出寄存器中的内容,然后进行偏移变址,然后取存储器中的内容,所以选
C
-
变址寻址:把变址寄存器的内容(通常是首地址)与指令地址码部分给出的地址(通常是位移量)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。
间接寻址:间接寻址是相对于直接寻址而言的,指令地址字段的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说是D单元的内容才是操作数的有效地址
选
A
-
double 一个数据 是 8 个字节,所以 所求变址寄存器的内容为 16*16/8=32
选
B
-
(R1) (补):FFFF FFFFH + (-R2) (补): 0000 0010H = (R3) = 10000 000FH
并未溢出,且R1-R2是大减小,不需要借位
选
A
4.3 简答题
-
指令
计算机中有一股控制信息流,它使得计算机按人们预先编制好的程序工作。
这些控制信息就是控制计算机执行某种操作(如加、减、传送、转移等)的命令,称为指令指令系统
计算机中所有指令的集合称为该计算机的指令系统
-
这是为了在效率和方便性上找一个平衡。立即数寻址和寄存器寻址在效率上是最快的,但寄存器仅有几个非常宝贵不可能将操作数都存入其中等待使用,立即数的使用场合也非常有限,这样就需要将数据保存在内存中,然后使用直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址这些寻址方式将内存中的数据移入寄存器中。
-
基址寻址:基址寻址是一种寻址方式,其中地址是由基址(通常存储在一个寄存器中)和一个常数偏移量组合而成的。这种方式通常用于实现数据结构,如数组和记录。
变址寻址:变址寻址是一种寻址方式,其中地址是由一个基址和一个存储在另一个寄存器中的偏移量组合而成的。这种方式通常用于实现循环和数组索引。
异同点:
- 相同点:两者都是通过基址和偏移量来计算最终的内存地址。
- 不同点:基址寻址中的偏移量是一个固定的常数,而变址寻址中的偏移量是可以变化的,通常存储在另一个寄存器中。因此,变址寻址比基址寻址更灵活,可以用于实现更复杂的数据结构和算法。
-
RISC是在继承 CISC的成功技术并克服CISC缺点的基础上产生并发展起来的,大部分RISC 具有如下特点。
(1)优先选取使用频率最高的一些简单指令,以及一些很有用但不复杂的指令,避免使用复杂指令。
(2)大多数指令在一个时钟周期内完成。
(3)采用LOAD/STORE结构。由于访问主存指令花费时间较长,因此在指令系统中应尽量减少访问主存指令,只允许LOAD(取数)和STORE(存数)两种指令访问主存,其余指令只能对寄存器操作数进行处理。
(4)采用简单的指令格式和寻址方式,指令长度固定。
(5)固定的指令格式。指令长度、格式固定,可简化指令的译码逻辑,有利于提高流水线的执行效率。为了便于编译的优化,常采用三地址指令格式。
(6)面向寄存器的结构。为减少访问主存,CPU内应设大量的通用寄存器。
(7)采用硬布线控制逻辑。由于指令系统的精简,控制部件可由组合逻辑实现,不用或少用微程序控制,这样可使控制部件的速度大大提高。
(8)注重编译的优化,力求有效地支持高级语言程序。RISC的着眼点没有简单地放在简化指令系统上,而是通过简化指令使计算机的结构更加简单合理,从而提高处理速度,其主要实现途径是减少指令的执行周期数。现在,RISC的硬件结构有很大改进,一个时钟周期平均可完成1条以上指令,甚至可完成几条指令。较为常见的RISC指令系统有ARM、MIPS、RISC-V等。 -
定长指令和变长指令是计算机指令集中的两种不同类型,它们各有优缺点。
定长指令:
- 优点:
- 简化了指令的解码过程,因为每个指令的长度都是相同的,所以可以更快地获取和解码指令。
- 便于指令的并行处理和流水线设计,因为每个指令的长度和格式都是固定的。
- 缺点:
- 可能会浪费存储空间,因为即使指令本身很简单,也必须使用完整的指令长度。
- 对于复杂的指令,可能需要多个定长指令来实现,这可能会降低执行效率。
变长指令:
- 优点:
- 更加灵活,可以根据指令的复杂性来选择合适的长度,从而节省存储空间。
- 可以在一个指令中包含更多的操作,从而提高执行效率。
- 缺点:
- 指令的解码过程更复杂,因为需要先确定指令的长度,然后再解码指令。
- 不利于指令的并行处理和流水线设计,因为指令的长度和格式都是可变的。
- 优点:
4.4 假设某计算机的指令长度固定为16位,具有双操作数,单操作数和无操作数3类指令,每个操作数地址规定用6位表示。
-
计算机最多有24条指令双操作数指令,双操作数指令为m条,操作码字段还有16-m种扩展标志
无操作数指令为n条,扩展过程中用到了个扩展标志
所有单操作数指令为
-
双操作数指令条
无操作数指令条
带入公式的得单操作数指令为条
4.5 设相对寻址的转移指令占三个字节,第一个字节是操作码,第二个字节是相对位移量(补码表示)的低4.58位,第三个字节是相对位移量(补码表示)的高8位,每当CPU从存储器取一个字节时,便自动完成(PC)+1-PC:
-
因为转移指令占用3个字节,所以取出指令后PC已经变成(PC)+3了。
设相对偏移的值为A,那么下一条执行的指令地址为:(PC)+3+AA = 31
31 转换为 2 进制:,转为16进制:
所以转移指令第二字节机器码为:
所以转移指令第三字节机器码为:
-
得A = -21
转为
所以转移指令第二字节机器码为:
所以转移指令第三字节机器码为:
4.6 某计算机 A 有 60 条指令,指令的操作码字段固定为 6 位,从 000000 ~ 111011,该计算机的后续机型 B 中需要增加 32 条指令,并与 A 保持兼容。
-
总计可以存放26条指令,A使用其中六十条,剩余四条可以作为拓展窗口
即111011、111100、111101和111111
由于故n=3
新操作码从
-
4.7 以下 MIPS 指令代表什么操作?写出它的 MIPS 汇编指令格式。
0000 0000 1010 1111 1000 0000 0010 0000

该指令为R型指令
OP | rs(5) | rt(5) | rd(5) | shamt(5) | funct(6) |
---|---|---|---|---|---|
0000 00 | 00 101 | 0 1111 | 1000 0 | 000 00 | 10 0000 |
查表可知函数意义如下
查表可得

rs = 00101 = 5,则对应的寄存器名称rt =
rt = 01111 = 15,则对应的寄存器名称rt =
4.8 简答题
-
因为指令长度为16位,且下条指令地址为(PC)+2,故编址单位是字节
偏移量OFFSET为8位补码,范围为-128~127,故相对于当前条件转移指令,向后最多可跳转127条指令。
-
指令中偏移量为1110 0011B=E3H
符号扩展后为FFE3H
左移一位乘2后为FFC6H
故PC的值(即转移目标地址)为200CH+2+FFC6H=1FD4H
-
进行数之间的比较通常是对两个数进行减法,题目中要求“无符号数比较小于等于时转移”,即两数相减的结果为0或者负数时应当转移。若结果为0,则ZF标志应当为1,若结果为负数,则CF借位标志应该为1,无符号数并不涉及符号标志NF
所以C=Z=1,N=0