关于扩展操作码的问题~~急!!

xiaozhuhh 2010-01-12 03:12:36
假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址最多有多少种?

答案说,根据操作数地址码为6位,则二地址指令中操作码的位数为16-6-6=4。这4位操作码可有2^4种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下的二地址指令最多有16-P-Q种。

没明白题中又说地址码为6位,又假设操作码固定是怎么回事。地址码为6位的话,那二地址指令的操作码为16-6-6=4位,一地址指令的操作码为16-6=10位,操作码不就不固定了吗?

急啊~~本人菜鸟,哪位高手给解答一下啊~~谢谢!
不知道说清楚了没。。。
...全文
1431 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhuhh 2010-01-14
  • 打赏
  • 举报
回复
考试考完了,居然就考这题了。。。还是考得一团糟~~
额,还是结贴吧。。。
谢谢suchx哈,第一个回我帖的,感动~~~看起来还是你的回答最靠谱了
内个,mnijdf123,还是谢谢你帮我顶哈~~分就不给你了(*^__^*)
还有KingWolfOfSky了,回得最多的,虽然最后就不理我了。。。

结贴啦~~~
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
没明白。。能具体讲讲不,那个低六位寻址的
KingWolfOfSky 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaozhuhh 的回复:]
操作码是固定的啊,那个6位和12位指的是地址码
看帖不仔细哈~~o(∩_∩)o
[/Quote]
额,是没看清楚啦~~~o(∩_∩)o
我们书上说的是操作码是固定的二地址就为6位,一地址为12位,但一地址寻址就是用的低六位嘛~~~
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
操作码是固定的啊,那个6位和12位指的是地址码
看帖不仔细哈~~o(∩_∩)o
KingWolfOfSky 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaozhuhh 的回复:]
可以有空闲吗?
因为我看书上的例子,当固定操作码的时候,地址码的位数都会调整,比如指令字长为16位,操作码为4位,那二地址就为6位,一地址为12位。16位都是用了的啊
[/Quote]
那就是操作码不固定嘛,题目说的是操作码固定啊~~
o(∩_∩)o
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
可以有空闲吗?
因为我看书上的例子,当固定操作码的时候,地址码的位数都会调整,比如指令字长为16位,操作码为4位,那二地址就为6位,一地址为12位。16位都是用了的啊
KingWolfOfSky 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaozhuhh 的回复:]
回楼上的同学,我不明白的是为什么要根据二地址指令来算操作码位数。因为如果按一地址指令来算的话,操作码的位数应该是16-6=10了。。。
[/Quote]
如果按一地址指令来算的话,那二地址指令的第二个地址往哪放呢,但是根据二地址指令来算操作码位数,一地址指令有一部分可以空闲啊~~
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
楼上的同学不hd。。。
skay 2010-01-12
  • 打赏
  • 举报
回复
不晓得了
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
回楼上的同学,我不明白的是为什么要根据二地址指令来算操作码位数。因为如果按一地址指令来算的话,操作码的位数应该是16-6=10了。。。
KingWolfOfSky 2010-01-12
  • 打赏
  • 举报
回复
操作码固定,那么根据操作数地址码为6位,则二地址指令中操作码的位数为16-6-6=4,说明操作码固定为4位,除去了零地址指令P种,一地址指令Q种,剩下的二地址指令最多有16-P-Q种

操作码不固定则设二地址指令最多有x种,那么(16-x)*(2^6)>=Q且((16-x)*(2^6)-Q)*(2^6)>=P,从而解除x
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
就这样吧。。。
谢谢你了!
suchx 2010-01-12
  • 打赏
  • 举报
回复
你可以看看这个
http://blog.csdn.net/xuqingskywolf/archive/2007/10/03/1810539.aspx
我先看下书,防止又说错了
suchx 2010-01-12
  • 打赏
  • 举报
回复
机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。

使用多字长指令:目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。其主要缺点是必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。

等长指令字结构:各种指令字长度是相等的。这种指令字结构简单,且指令字长度是不变的。

变长指令字结构:各种指令字长度随指令功能而异。结构灵活,能充分利用指令长度,但指令的控制较复杂

我百度的,题目没有指是等指令字长的CPU
xiaozhuhh 2010-01-12
  • 打赏
  • 举报
回复
但是指令字长给定了16位就不能改变了吧?
suchx 2010-01-12
  • 打赏
  • 举报
回复
题目是指操作码的长度固定吧,就是不论什么指令,操作码都是4位的,所以就只有16种不同的操作码。指令的长度一般都是不同的,不一定都是16位。零地址指令长度是4,一地址指令的指令长度是10,二地址指令长度是16.

21,459

社区成员

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

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