【计组】第四章 指令系统-题

指令的地址由程序计数器PC给出。

指令的地址码字段是指令的操作数地址。


程序控制指令包括:

        无条件转移、有条件转移、子程序调用、返回指令、循环指令等。

中断隐指令硬件控制,不属于程序控制指令。


计算指令条数

        1.还可以有多少条:(看OP前面剩下几种*2^OP其他地址没用的位数)

        题目:一个计算机系统采用32位单字长指令,地址码12位,若定义了250条二地址指令,则还可以有多少条单地址指令。

        解答:

二地址:OP(8位) A1(12位)A2(12位)

一地址:OP(8位)OP(12位)A1(12位)

        指令一共32位,12位地址码,二地址指令的操作码32-12*2=8位;

        一共可以定义二进制指令条数:2^8  = 256;

        现在定义了250条,余下:256-250=6种操作码给单地址指令(前8位里面有6种);

        所以还可以有6*2^12条。

        2.指令最多有多少条:(最多的减去其他地址占用的)

        题目:设计某种指令系统时,假设采用16位定长指令字格式,操作码使用扩展编码方式,地址码为6位,包含零地址、一地址、二地址3种格式的指令。若二地址指令有12条,一地址指令有254条,则零地址指令的条数最多位多少条。

        解答:

二地址OP(4位)  A1(6位) A2(6位)

一地址OP(4位) OP(6位) A1(6位)

零地址OP(4位) OP(6位) OP(6位)

        若只有零地址指令,则最多2^16条

        现在二地址指令12条,剩余:2^4-12=4种操作码给一地址指令;

        这4条二地址指令对应一地址指令:4*2^6=256条;

        而一地址指令有254条,剩余256-254=2种操作码给零地址

        所以零地址一共有2*2^6=128条。


指令字长长度

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

       解答:

三地址指令:OP()A1(6)A2(6)A3(6)

二地址指令:OP()A1(6)A2(6)

        三地址29条需要5位OP提供32条,32-29=3种多余

        二地址3*2^6=192条>107条,所以三地址5位OP合理,

        因为按字节编址,所以指令字长要是字节的整数倍,5+6+6=17位不是字节(8位)的整数倍,所以指令字长至少3*8=24位。


指令系统不同寻址方式提升了指令译码难度,但缩短指令字长,扩大寻址空间,提高编程灵活性。

寄存器寻址:缩短指令中某个地址段的位数。(寄存器比主存短)

隐含寻址:简化地址结构


 PC的内容

按字寻址的机器:

程序计数器PC(存地址)的位数取决于存储器的字数

指令寄存器IR(存指令)的位数取决于指令字长

        PC指向下一个指令的地址,执行指令后PC的内容要加“1”个指令长

题目:某机器指令字长为16位,主存按字节编址,取指令时,每取一字节,PC自动加1。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址为40H。则取指令后及指令执行后PC的内容:2002H,2042H。


负数补码符号位扩展是先变补码再扩展

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曦樂~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值