写点什么

通过题目来讲一讲指令系统相关知识 1 | 计算机组成与系统结构专题

用户头像
Regan Yue
关注
发布于: 刚刚

题目 1

设某指令系统的指令字为 16 位,每个地址码为 6 位,若二地址指令 15 条,一地址指令 34 条,则剩下的零地址指令最多有多少条?

题目 1 解答

二地址的地址码部分占 12 位 则其操作码为 4 位,最多 16 种编码,而二地址指令为 15 条(0000-1110),则还剩一种编码 1111 未使用。


一地址的地址码部分占 6 位,则其操作码部分为 10 位,最高 4 位为 1111 则还剩下 6 位可以使用。 6 位最多有 2^6=64 种编码,用其中的 32+2=34 种编码,即(11110 00000-11110 11111,11111 00000-11111 00001 )


零地址有 16 位操作码,最高 5 位只能是 11111,接下来 5 位为 00010-11111,再接下来 6 位为(000000-111111),则有 30*2^6 种编码可使用。

题目 2

假设某计算机字长 32 位,CPU 有 32 个 32 位的通用寄存器,指令长度为单字长,指令操作码占 6 位。请回答以下问题,注意写出分析过程:


(1)对于存储器直接寻址方式的 RS 型指令,能直接寻址的最大主存空间是多少?


(2)对于采用通用寄存器作为基址寄存器的 RS 型指令,则能直接寻址的最大主存空间是多少?


(注:按操作数的来源,指令可分为:RR 型、SS 型和 RS 型。RR 型:两个操作数均来自寄存器的指令;SS 型:两个操作数均来自内存的指令;RS 型:操作数分别来自寄存器和内存的指令)

题目 2 解答

因为有 32 个寄存器,所以寄存器编号 R 占 5 位,间址位 I 占 1 位,当 I=0,存储器寻址的操作数为直接寻址,当 I=1 时为间接寻址,又因为操作码占 6 位,所以能直接寻址的最大主存空间是 2^(32-6-6) = 2^20.


如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为:



增加寻址特征位 X,当 X=1 时,以目标寄存器 R 作为基址寄存器进行基址寻址。


基址寻址可访问存储空间为:2^32 字。

发布于: 刚刚阅读数: 2
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者

评论

发布
暂无评论
通过题目来讲一讲指令系统相关知识 1 | 计算机组成与系统结构专题