麻烦各位高人解答一个和指令有关的问题!谢谢

wefgod 2009-04-03 05:09:30
某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数,单操作数,和双操作数三类。若双操作数指令有K条,无操作数指令有L条,问单操作数指令最多可能有多少条?

想了半天,好像就和变长的指令有关的,其他我没想到什么了····还希望高人解答,谢谢!
...全文
539 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyEnglish 2010-10-24
  • 打赏
  • 举报
回复
这个题我也不会,最后答案是什么?楼上的具体步骤对不?
wefgod 2009-04-10
  • 打赏
  • 举报
回复
最后终于有人说的和老师的接近了!不过答案我具体不记得了···待会我看看
结贴!感谢各位!
nut_cz 2009-04-07
  • 打赏
  • 举报
回复
如果是RISC指令集,每条指令长度16位,双操作数地址码占12位,操作码4位,最多双操作数指令2^4条,其中占用K条,剩余的操作码二次分配。
剩余的中,单操作数地址码6位,操作码分成4位(不能和双操作数指令的操作码重复)和6位两部分,最多单操作指令(2^4-K)*2^6条,假定当前存在单操作数指令X条,剩余的操作码再次分配。
那么无操作数指令操作码16位,分成4位、6位(不能和双操作数、单操作数指令的操作码重复)和6位三部分,最多是((2^4-K)*2^6-X)*2^6条,那么((2^4-K)*2^6-X)*2^6必须大于等于L。
理想状态下L为2^6的整数倍,那么((2^4-K)*2^6-X)*2^6=L,即X=(2^4-K)*2^6-L/(2^6)。
否则X=(2^4-K)*2^6-(L/(2^6)+1)。

所以标准的算法是X=(2^4-K)*2^6-((L+(2^6)-1)/(2^6))。

注:2^N为2的N次方。
wefgod 2009-04-06
  • 打赏
  • 举报
回复
想明白为什么而已···要一个答案没什么用···
前面的高人说的那个分析,没看懂······
BAYNPU 2009-04-06
  • 打赏
  • 举报
回复
试试看,也许对的.
wefgod 2009-04-06
  • 打赏
  • 举报
回复
明天早上交作业,看来这个就只能写一个答案上去了·········交了再来
wefgod 2009-04-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hejinjing_tom_com 的回复:]
这个问题提的不太明确,需要基于几个假设才能回答。
指令长16为,地址码占6位。
按照risc cpu 的理解,此时指令码占10位。 指令空间为2的10次方
你的双操作数,应该也只能占6位地址码空间,是否每个数占3位看cpu设计
无操作数指令是否6位就不用。还是允许用代码空间也不一样,容易的设计是地址码不用。
一位操作数就用这6位做数据或地址了
基于这样的假设,你就有了答案: 2^10-K-L

如果是cisc cpu, 那就更无解了…
[/Quote]好像上面的朋友给的答案是2^16-K-L-2^6····
我老师说的时候,我没注意听····结果就记得说了一个指令变长的还是什么的···
hjjdebug 2009-04-03
  • 打赏
  • 举报
回复
这个问题提的不太明确,需要基于几个假设才能回答。
指令长16为,地址码占6位。
按照risc cpu 的理解,此时指令码占10位。 指令空间为2的10次方
你的双操作数,应该也只能占6位地址码空间,是否每个数占3位看cpu设计
无操作数指令是否6位就不用。还是允许用代码空间也不一样,容易的设计是地址码不用。
一位操作数就用这6位做数据或地址了
基于这样的假设,你就有了答案: 2^10-K-L

如果是cisc cpu, 那就更无解了,因为指令长度不固定。
BAYNPU 2009-04-03
  • 打赏
  • 举报
回复
请楼主参考这个答案:http://zhidao.baidu.com/question/17171415.html

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧