当前位置: 首页 > 知识库问答 >
问题:

为什么MIPS BLT指令没有在硬件中实现?

商开宇
2023-03-14

我想问为什么BLT指令不是MIPS ISA的一部分。相反,他们实际上使其成为汇编程序员的伪指令。从硬件实现的角度来看,我只是无法识别BLTBLTZ(这是MIPS ISA的一部分)之间的区别。

顺便说一下,《计算机组织与设计》一书说:

注意到冯·诺依曼关于“设备”简单性的警告,MIPS体系结构不包括分支,因为分支太复杂,要么会延长时钟周期时间,要么每条指令需要额外的时钟周期,因此两条更快的指令更有用。

但我仍然不知道为什么会发生这种情况。

共有1个答案

贺桐
2023-03-14

因为小于零实际上只是一个符号位检查,而小于

  • 根据结果的符号位进行减法然后跳转,或

任何一种方法都比单位检查复杂得多,因此BLTZ要快得多。类似地,<代码>

事实上,架构直接在单个指令中支持两个值之间的跳转和比较并不常见,尽管大多数会根据与0相关的值进行跳转。甚至像x86这样的CISC架构也需要用户进行比较然后跳转

 类似资料:
  • 问题内容: 我来自C语言,正在学习Python。缺乏显式的类型安全性令人不安,但是我已经习惯了。面对动态语言的所有优点,缺少内置的基于契约的编程(纯抽象类,接口)的不足是必须习惯的。 但是,无法请求const- cortectness使我疯狂!为什么Python中没有常量?为什么不鼓励使用类级常量? 问题答案: C和Python属于两种不同的语言类别。 前一个是 静态 类型的。后者是 动态的 。

  • 问题内容: 在Java中,为什么以下代码行不起作用? 如果我将其更改为 起初,我以为您可能没有接口列表,但是我可以创建一个很好的接口。 有想法吗? 问题答案: 泛型类型比较古怪。 表示或任何子类型,但仅表示。如果您想要一个子类型,您需要 我怀疑你可以用 无法执行此操作的原因是,您可以使用对引用的引用,并且必须谨慎使用额外的间接级别。 使用泛型,您可以有两个间接级别,这会给您带来问题,因此它们更容易

  • 问题内容: 如果在Java中没有指针这样的概念,为什么会得到一个异常调用? 问题答案: 是的,这是我在学习Java LOL时学到的第一批烦人的东西之一。正如paxdiablo所提到的,它实际上应该称为NullReferenceException,NoObjectException或DereferenceException。引用甚至不必在内部表示为指针,并且您不必关心。“大多数虚拟机包括Sun的使用

  • 问题内容: 我知道每次键入字符串文字时,字符串池中都会引用相同的String对象。 但是,为什么String API不包含,所以我可以使用引用? 至少,这将节省编译时间,因为编译器将知道引用现有的String,而不必检查是否已创建它以进行重用,对吗?我个人认为,字符串文字(尤其是很小的文字)在许多情况下是一种“代码异味”。 那么是否没有String.Empty背后的宏伟设计原因,还是语言创建者根本

  • 问题内容: 在Java中,有和接口。两者都属于Java的标准框架,并提供了一种访问元素的分类方法。 但是,据我了解没有。你可以用来对列表进行排序。 知道为什么要这样设计吗? 问题答案: 列表迭代器首先确保你以列表的内部顺序(也称为插入顺序)获取列表的元素。更具体地说,它是按照插入元素的顺序或操作列表的方式进行的。排序可以看作是对数据结构的一种操作,有几种方法可以对列表进行排序。 我将按照自己的见解

  • 问题内容: 为什么JavaFX中没有ObservableQueue?如果我们查看FXCollection的Java 9文档(只是看一下8的变化),我们会看到用于创建Observable集,列表和映射的静态助手方法。还有一些创建Observable float和integer数组的方法。但是,无法创建ObservableQueue。Java中的Queue接口具有许多有趣的实现,包括ArrayDequ