通过题目来讲一讲指令系统相关知识 1 | 计算机组成与系统结构专题
题目 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 字。
版权声明: 本文为 InfoQ 作者【Regan Yue】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e7ceb3d89b521ffd1f0ab4dc】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论