首页 > 试题广场 >

题目来源于王道论坛 某计算机按字节编址,指令

[单选题]
题目来源于王道论坛

某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是



  • 24位
  • 26位
  • 28位
  • 32位
推荐

解析:

三地址指令有29条,所以它的操作码至少为5位。以5位进行计算,它剩余32-29=3种操作码给二地址。而二地址另外多了6位给操作码,因此它数量最大达3*64=192。所以指令字长最少为23位,因为计算机按字节编址,需要是8的倍数,所以指令字长至少应该是24位,选A

发表于 2018-06-16 10:57:46 回复(1)
我说一下我的理解

首先,该指令至少要能容纳下29条三地址指令及其三个地址字段,也就是至少5+18=23bit。(5是因为2^5=32>29,18是因为3*6bit=18bit)

这23bit也足够容纳107条二地址指令及其2*6bit的地址字段(2^7=128>107,2*6bit=12bit,共7+12=19bit<23bit)。

然后还要多1bit用来区分三地址指令和二地址指令。也就是总共23+1=24bit。

(网上的答案实在看不懂,要是我理解错了就在评论区纠正吧)
编辑于 2020-09-04 21:50:17 回复(3)
指令字长是一条指令的二进制位数个数=操作码+地址码
    又因为题目中说的是指令字长固定,也就是说计算机的每一条指令的指令字长的二进制位数个数要一样,题目中问指令字长至少是多少,换一种说法也就是这个指令的二进制(0/1)组合的位数既要能够表示三地址指令又要表示二地址指令。
    三地址结构顾名思义三个地址码+一个操作码;题目中说三地址指令29条,因为这29条三地址指令每一条指令都代表着不一样的功能啊(操作码指出这条指令是干什么用的),是不是也就说明操作码至少需要5位(2^5=32>29),题目中又说每个地址字段有6位,而三地址指令有三个地址字段,所以(3*6=18)所以此时三地址指令需要(5+18=23)
   同理,二地址结构需要(2^7=128>107,2*6bit=12bit,共7+12=19bit)19位,题目中说的是定长指令(所有指令长度要相等)经上述分析,既要表示到三地址指令又要表示二地址指令,那么应取它们最长的既是三地址指令(23位),题目中说只有两种指令格式,还需要增加1位来区分二地址和三地址指令所以一共需要23+1=24
发表于 2023-09-27 15:55:18 回复(1)

因为地址字段是6位,也就是A是6位。操作码OP不知道。

三地址格式为:(每个A为6位)

| OP | A1 | A2 | A3 |

因为指令 29 条,所以地址码需要能表示数字有29个,也就是:

同理二地址:

因为每个指令字长一样,所以少了一个A,应该加到OP上,也就是这里的 2的幂是 op+6。

| OP2=OP+A | A1 | A2 |

因为【注意】指令不能重复,一个题中,第一问用过的指令二进制,下面就不能再用了。所以OP表示的条数要减去29。

所以要同时满足:

算出OP为5位时候满足,那么指令字长就是 5+6+6+6 = 23

但是【注意】指令字长一般是 8 的整数倍(也就是字节编址),所以要在 23 加到满足8的整数倍。

即24。

【计算机组成原理】汇总四、指令系统

发表于 2024-12-01 17:43:20 回复(0)