首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FC字段在用于浮点比较指令的MIPS机器代码中代表什么?请参阅下图

FC字段在用于浮点比较指令的MIPS机器代码中代表什么?请参阅下图
EN

Stack Overflow用户
提问于 2022-11-08 00:23:39
回答 1查看 25关注 0票数 0

您还能告诉我如何对FC=00,01,10和11的值进行汇编程序操作吗?

当我在我的汇编程序上执行指令时,我找到了FC=11,但是我不知道它的意思。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-08 01:08:28

2位fc字段和下面的4位,两者结合在一起,实际上只是6位func字段。

我不知道为什么那些作者选择把它分割成两个并排的字段,因为它似乎并没有达到我所能看到的特定目的。

此外,尽管它们只为这几个指令将func字段分成两部分,但它们恢复到对所有其他指令描述的6位func字段的描述。

由于这个表示法,在寻找0x0,0x1,0x2,0x3的fc字段时,后面的4位是0xc,我们还可以查找0x0c、0x1c、0x2c和0x3c的func字段值,其中一些可以找到。

func值0x3c用于c.lt.s/d (当然,对于单变量和双值,适当的opcode=0x11和fmt=0x10/0x11 )。

func字段值0x0c用于round.w.s/d

其他值,0x1c & 0x2c在文档中是找不到的,而且这种遗漏是典型的未使用操作码,因此有一种可能性是,这些代码确实是R2000的未使用操作码。

将46 00 0 0 3c输入https://disasm.pro/ (MIPS/大端)将产生适当的c.lt.s,而46 00 0 0 C将产生预期的round.w.s,而以1c或2c结尾则不会产生反汇编。

另一个源MIPS绿片提供了相同的答案: 0x0c代表圆形,0x3c表示比较,而0x1c和0x2c显示为未赋值。

我们希望处理器对未分配的操作码做些什么?它不清楚,而且通常没有详细说明。它需要工作来检测这些东西,这样设计人员就可以允许实现做最方便(即最低的硬件工作量). ,因此,未指定的操作可以是省略,甚至可能被明确定义为未定义的行为!执行的可能性很大,从导致某种异常/错误(未实现),到不正确地解码指令,这可能意味着运行非常类似的编码指令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74354445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档