我想问一下,为什么BLT
指令不是MIPS ISA的一部分。 相反,他们实际上使之成为组装程序员伪指令。 我简直不认识的区别BLT
和BLTZ
(这是MIPS ISA的一部分),但从硬件实现点。
顺便说这本书“计算机组成与设计”说:
听取冯·诺伊曼的关于“装备” MIPS架构的简单警告不包括分支不到,因为它太复杂,要么会延长时钟周期或将采取额外的时钟周期的每个指令,这两个快指令更有用。
但我仍然不知道为什么那些可能发生的事情。
我想问一下,为什么BLT
指令不是MIPS ISA的一部分。 相反,他们实际上使之成为组装程序员伪指令。 我简直不认识的区别BLT
和BLTZ
(这是MIPS ISA的一部分),但从硬件实现点。
顺便说这本书“计算机组成与设计”说:
听取冯·诺伊曼的关于“装备” MIPS架构的简单警告不包括分支不到,因为它太复杂,要么会延长时钟周期或将采取额外的时钟周期的每个指令,这两个快指令更有用。
但我仍然不知道为什么那些可能发生的事情。
因为小于零,其实只是一个符号位检查,而小于是减法,然后跳转基于结果的符号位。 因此BLTZ
要快得多。 类似地, >= 0
也只需要1个符号位的检查。 <= 0
或> 0
需要另一个零检查,但它是相当微不足道的。
事实上,这不是常见的架构支持两个值之间直接在一个指令跳跃和对比,虽然大多数将基于与0即使CISC架构的价值具有跳跃像86需要用户进行比较,然后跳