1. |
首次提交时间:2022-10-28 13:19:53 最后一次提交时间:2022-10-28 13:19:53
【单选题】 下面关于RISC技术的描述中,正确的是 【 正确答案: C】
得分:2.00
|
---|---|
2. |
首次提交时间:2022-10-28 13:18:48 最后一次提交时间:2022-10-28 13:18:48
运算型指令的寻址与转移性指令的寻址不同点在于 【 正确答案: A】
得分:2.00
|
3. |
首次提交时间:2022-10-28 08:01:58 最后一次提交时间:2022-10-28 08:01:58
【单选题】 对某个寄存器中操作数的寻址方式称为 【 正确答案: C】寻址
得分:2.00
寄存器寻址:操作数存放在寄存器中,指令操作码给的是操作数所在的寄存器编号
寄存器间接寻址:指令操作码给的是寄存器编号,操作数的有效地址存放在寄存器中,而操作数存放在主存单元中。(注意区分)
|
4. |
首次提交时间:2022-10-28 08:02:27 最后一次提交时间:2022-10-28 08:02:27
【单选题】 指令系统中采用不同寻址方式的目的主要是 【 正确答案: B】
得分:2.00
|
5. |
首次提交时间:2022-10-28 13:20:53 最后一次提交时间:2022-10-28 13:20:53
【单选题】 以下给出的4种指令类型中,执行时间最长的指令类型是 【 正确答案: C】
得分:2.00
寄存器-寄存器(RR)型指令:从寄存器中取操作数,把操作结果放到另一寄存器中,不需要访问内存存储器,因此速度快; 存储器—存储器(SS)型指令:执行此类指令,既要访问内存单元,又要访问寄存器。 寄存器-存储器(RS)型指令:执行此类指令,既要访问内存单元,又要访问寄存器。 |
6 |
首次提交时间:2022-10-28 08:03:15 最后一次提交时间:2022-10-28 08:03:15
【单选题】 假定指令地址码给出的是操作数的存储地址,则该操作数采用的是 【 正确答案: B】寻址
得分:2.00
A:立即寻址:直接给出操作数,不需要寻找地址
B:直接寻址:给出操作数所在的地址,操作数存储在主存中
C:基址寻址:CPU中基址寄存器(BR)的内容+指令格式中的形式地址A=操作数的有效地址,即EA=(BR)+A。
基址寻址的基址寄存器不变(作为基地址),改变的是形式地址A中的值(作为偏移量) 基址寻址面向系统,多用于多道程序,用以实现从程序的动态重定位
D:相对寻址是基址寻址的变种。操作数的有效地址=(pc)+A,它便于程序浮动,广泛应用于转移指令。地址码中的A相当于指令地址的偏移量,可正可负,用补码表示。从而指出了操作数和现在这行指令的相对位置。 ps:变址寻址:有效地址EA=A+(I)[变址寄存器I] ,它面向用户,常用于处理数组问题,变址I由用户指定 |
7. |
首次提交时间:2022-10-28 08:03:33 最后一次提交时间:2022-10-28 08:03:33
【单选题】 下列有关RISC特征的描述中,错误的是 【 正确答案: C】
得分:2.00
|
8. |
首次提交时间:2022-10-28 08:04:14 最后一次提交时间:2022-10-29 18:05:53
【单选题】 通常将在部件之间进行数据传送的指令称为传送指令。以下有关各类传送指令功
得分:2.00
解:
D:寄存器本身在CPU中
书P02
传送指令通常有寄存器之间的传送,从内存单元读取数据到CPU中,从CPU寄存器写数据到主存单元中,以及在两个存储区域之间的数据块之间传送
|
9. |
首次提交时间:2022-10-28 08:04:37 最后一次提交时间:2022-10-28 08:04:37
【单选题】 输入输出指令的功能是 【 正确答案: C】
得分:2.00
|
10. |
首次提交时间:2022-10-28 13:38:38 最后一次提交时间:2022-10-29 18:08:02
【单选题】 某计算机按字节编址,采用小端方式存储信息。其中,某指令的一个操作数为
得分:2.00
MSB:最高字节地址
LSB:最低字节地址
因为是基址寻址,EA=(B)+A,,形式地址需要进行符号扩展,为FFFF FF00H,因此操作数的首地址BFFF FF00H
又因为是按字节寻址,因此一个存储单元存放8个bit,因此高MSB存放在BFFF FF01H
|
11. |
首次提交时间:2022-10-28 08:07:00 最后一次提交时间:2022-10-28 08:07:00
【单选题】 若指令地址码为D,则相对寻址方式下操作数的有效地址为 【 正确答案: D】
得分:2.00
|
12. |
首次提交时间:2022-10-28 08:07:39 最后一次提交时间:2022-10-28 08:07:56
【单选题】 寄存器间接寻址方式的操作数存放在 【 正确答案: B】中
得分:2.00
|
13. |
首次提交时间:2022-10-28 08:07:59 最后一次提交时间:2022-10-29 00:01:03
【单选题】 假定指令地址码给出的是操作数所在的寄存器的编号,则该操作数采用的是 【 正确答案: C】
得分:2.00
|
14. |
首次提交时间:2022-10-28 08:08:38 最后一次提交时间:2022-10-28 08:08:40
【单选题】 假定指令地址码给出的是操作数本身,则该操作数采用的是 【 正确答案: A】寻址方式
得分:2.00
|
15. |
首次提交时间:2022-10-28 08:13:17 最后一次提交时间:2022-10-28 17:15:36
【单选题】 某计算机为定长指令字结构,采用扩展操作码编码方式,指令长度为16位,每个地
得分:2.00
|
# | 题目 | 分值 | 提交/评阅状态 | ||||
---|---|---|---|---|---|---|---|
1. | 请给出C语句“int x=6144;”对应的RISC-V机器级代码。 | 10.00 | 得分:5.00
初次提交时间: 2022-10-28 17:19:50 最后一次修改时间: 2022-10-28 17:35:06 6144的机器数为: 0000 0000 0000 0000 0001 1000 0000 0000 所以其高20位为:0000 0000 0000 0000 0001 低12位为:1000 0000 0000 由于imm12的范围为-2048——2047 所以不能直接进行汇编,可加上一个2048,再减去一个2048 所以指令为 0000 0000 0000 0000 0010 00101 011011 lui X5,2 #R[X5]<--0000 2000H 1000 0000 0000 00101 000 00101 0010011 addi x5,x5,-2018 #R[x5]<--R[x5]+SEXT[800H]
参考答案: 6144=8192-2048 0000 0000 0000 0000 0010 00101 0110111 lui x5, 2 #R[x5]← 0000 2000H 1000 0000 0000 00101 000 00101 0010011 addi x5, x5,-1#R[x5]←R[x5]+SEXT[FFFH] | ||||
2. | 假设某计算机按字节编址,采用小端方式存储信息。其中某指令的操作数为32位 | 10.00 | 得分:10.00
初次提交时间: 2022-10-28 15:52:39 最后一次修改时间: 2022-10-29 18:50:29 对形式地址进行符号扩展:FFFF B000H 基址寻址的物理地址=(BR)+形式地址=8000 4000H+FFFF B000H=7FFF F000H 所以该指令操作数的地址为:7FFF F000H 因为是小端方式,所以数据的低字节保存在内存的低地址中,高字节保存在高地址中 所以:字节78H的存放地址:7FFF F000H 字节78H的存放地址:7FFF F000H 字节56H的存放地址:7FFF F008H 字节34H的存放地址:7FFF F010H 字节12H的存放地址:7FFF F018H
参考答案: B000H=1011 0000 0000 0000B,形式地址的值为一101 0000 0000 0000B=-5000H, | ||||
3. | 某计算机指令系统采用定长指令字格式,指令字长16位,每个操作数的地址码长 | 10.00 | 得分:10.00
初次提交时间: 2022-10-28 16:21:23 最后一次修改时间: 2022-10-28 16:26:35 解:因为二地址指令的操作码op为4b(=16-6*2),所以二地址剩下的扩展操作码为2^4-K2; 因此单地址的指令条数最多可为(2^4-K2)*(2^6),假设单地址的实际指令条数为x 则剩下的无地址指令条数为[(2^4-K2)*(2^6)-x]*(2^6)=k0 所以单地址指令最多有:x=(2^4-K2)*(2^6)-k0*2^(-6) 参考答案: 设单地址指令有k1条,则((16-k2)×26-k1)×26=k0,k1=(16-k2)×26-k0/26 | ||||
4. | 某指令系统的指令字是16位,每个地址码为6位。若二地址指令15条,一地址指令48条,则剩下的零地址指令最多有多少条? | 10.00 | 得分:10.00
初次提交时间: 2022-10-28 16:28:59 最后一次修改时间: 2022-10-28 16:39:38 指令字长为16b,单个地址码为6b,则二地址指令的操作码op=4b,如果基本操作码全部用于二地址指令,则二地址指令条数最多为2^4=16条,由于实际指令条数为15条,所以其中一个用作扩展操作码。因此一地址指令指令条数最多可为2^6=64条,实际指令条数为48,所以留给零地址的扩展操作码有16条,因此零地址指令最多有16*2^6=1024条 参考答案: 操作码按短到长进行扩展编码。对于二地址指令,两个地址码占12位,剩下的操作码占4位,最多有16种编码,15条指令用掉15种编码0000~1110,还剩一种编码1111;对于一地址指令,高4位操作码一定是1111,最低6位是一个地址码,剩下的中间操作码还有6位,最多可以有64种编码,指令条数是48,因此只需从64种编码中选48 种作为48条指令的操作码。可采用如下的操作码编码方案:11110 00000~1111 011111(共32种编码)、1111 10 0000~1111 1 0 1111(共16种编码);对于零地址指令,其高10位操作码的编码空间为1111110000~1111111111,因此,高10位共有16种编码可用,再加上低6位的64种编码,一共可组合成16×64=1024种编码,可以分别分配给1024种指令。故剩下的零地址指令最多有1024条。 | ||||
5. | 已知计算机指令字长为16位,其双操作数指令的格式如下: | 10.00 | 得分:10.00
初次提交时间: 2022-10-28 16:42:03 最后一次修改时间: 2022-10-28 17:10:37 (1)D为直接操作数则为立即寻址,因此能访问的最大主存区的机器字为:1 (2)D为直接主存地址即为直接寻址,能访问的的最大主存区的机器字为:2^(15-8+1)=2^8=256 (3)D为间接地址(一次间接)则该指令为间接寻址方式,因为操作数的地址在内存中,需要两次访存才能够取到操作数,因此他的访存范围与存储字长有关。存储字长为16b,所以能访问的最大主存区的机器字为:2^16=65536 (4)D为变址的形式地址,因此操作数的实际地址在变址寄存器中,因为变址寄存器的字长为16b, 所以能够访问的最大主存区的机器字为:2^16=65536 参考答案: (1)该机器字即为指令字,它本身包含操作数D(只有8位),无需访存。 | ||||
6. | 一次间接寻址指令中给出的地址码为2000H,地址为2000H的内存单元中的内容 | 10.00 | 得分:10.00
初次提交时间: 2022-10-28 14:27:39 最后一次修改时间: 2022-11-02 21:30:48 一次间接寻址指令的操作数实际地址在地址为2000H的存储单元中,所以有效地址:3000H 有效地址中的内容即为操作数的值:4000H 参考答案: 一次间接寻址方式的指令中给出的地址码是一个间接地址,即操作数地址的地址。所 | ||||
7. | 假定编译器将a和b分别分配到t0和t1中
| 10.00 | 得分:10.00
初次提交时间: 2022-10-31 16:21:28 最后一次修改时间: 2022-10-31 16:49:17 当实现b=31&a时由于andi指令中立即数的位数足以表示31所以指令实现为: andi t1,t0,31 如果将31换为65535则指令的位数不足以表示,应该转换在寄存器中进行计算,65535=2^16-1: lui t1,16 addi t1,t1,-1 and t1,t0,t1
参考答案: 【分析解答】 只要用一条指令000000011111 0101 000 0110 0010011“andi t1, t0, 31”就可实现b=31&a,其中12位立即数为0000 0001 1111。但是,如果把31换成65535,则不能用一条指令“andi t1, t0, 65535”来实现,因为65535 =1111 1111 1111 1111B,它不能用12位立即数表示。可用以下3条指令实现b=65535&a。 0000 0000 0000 0001 0000 00110 0110111 lui t1, 16 #将0001 0000H置于寄存器t1 1111 1111 1111 00110 000 00110 0010011 addi t1, t1, -1 #将0001 0000H与FFFF FFFFH相加,送t1 0000000 0110 0101 111 0110 0110011and t1, t0, t1 #将t0和t1的内容进行“与”运算,送t1 |