指令格式设计

例1:

某计算机字长32位,采用三地址指令,支持8种寻址操作,完成60种操作,各寻址方式均可在2K主存范围内取得操作数,并可在1K范围内保存运算结果。问应采用什么样的指令格式?指令字长最少应为多少位?执行一条指令最多要访问多少次主存?
解:

根据题目条件,指令格式如下:

OP=6位

(寻址方式)X1=X2=X3=3位,共9位

(源操作数)A1=A2=11位,(目的操作数)A3=10位,共32位

共47位

指令占两个存储字,取指访存2次,取2个源操作数访存2次,写结果访存一次,共5次

例2:

字长16位,主存64K,指令单字长单地址,80条指令。寻址方式有直接、间接、相对、变址。请设计指令格式

解:

80条指令 ==> OP字段需要7位(2^7=128)

4种寻址方式 ==> 寻址方式特征位2位

单地址址位长度 ==> 16-7-2=7位

指令格式 ==>

 

设PC寄存器16位,变址寄存器16位

相对寻址 E=(PC)+A,寻址范围 :64K

变址寻址 E=(R)+A,寻址范围   :64K

直接寻址 E=A,寻址范围          :128

间接寻址 E=(A),寻址范围        :64K

设计评价:访问主存的方式太多,缺少立即数寻址

例3:

设某指令系统指令字长16位,每个地址码为6位。若要求设计二地址指令15条、一地址指令34条,问最多还可以设计多少条零地址指令?

需要做操作码扩展

采用将操作码字段扩展到没有使用的地址码字段的指令格式设计方案的主要目的是保持指令长度不变,增加指令数量

解:

操作码按短码到长码进行扩展编码

假定二地址指令编码:(0000-1110)共15条,1111作为扩展标识

则一地址指令编码的全集可表示为:1111 000000 - 111111(假定扩向A1);

因一地址指令只需34条,可将全集中多余的30种编码作为向零地址指令扩展的标识,假定为:100010 - 111111

故最多可支持的零地址指令数为:30*2^6 条

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值