Assembly MIPS中的标签执行
这是一个非常简单的问题,但是如果我有一堆为MIPS编写的指令(尽管我假设这可能会在一般情况下延续到汇编),并且在某个点上有一个标签,那么即使没有显式调用,该标签上的指令也会执行吗?例如,假设我有:Assembly MIPS中的标签执行,assembly,mips,Assembly,Mips,这是一个非常简单的问题,但是如果我有一堆为MIPS编写的指令(尽管我假设这可能会在一般情况下延续到汇编),并且在某个点上有一个标签,那么即使没有显式调用,该标签上的指令也会执行吗?例如,假设我有: SUB$6、$4、$3 BNE$6,$2,标签1 ADDI$6,$0,-8 LABEL1:SW$60x01000 如果BNE分支到LABEL1,那么ADDI将被跳过。但是如果BNE没有分支到LABEL1,那么ADDI发生了,但是下一行也总是发生吗?“下一行也总是发生吗?” 是“下一行也总是发生吗?”
SUB$6、$4、$3
BNE$6,$2,标签1
ADDI$6,$0,-8
LABEL1:SW$60x01000
如果BNE
分支到LABEL1,那么ADDI将被跳过。但是如果BNE没有分支到LABEL1,那么ADDI发生了,但是下一行也总是发生吗?“下一行也总是发生吗?”
是“下一行也总是发生吗?”
是它被称为延迟槽。执行以下指令后是否执行分支。这就是为什么在MIPS代码中的分支指令之后通常会看到nop
。延迟槽中的分支指令通常是未定义的行为
仅当条件为真且执行了分支时,才会执行目标标签上的指令
更多信息它被称为延迟槽。执行以下指令后是否执行分支。这就是为什么在MIPS代码中的分支指令之后通常会看到nop
。延迟槽中的分支指令通常是未定义的行为
仅当条件为真且执行了分支时,才会执行目标标签上的指令
更多信息顺便说一句,那篇文章提到了具有两个分支延迟槽的体系结构。然后,在您的示例中,标签处的代码将被调用一次或两次,但通常只有一个插槽。顺便说一句,该文章提到了具有两个分支延迟插槽的体系结构。然后,在您的示例中,标签处的代码将被调用一次或两次,但通常只有一个插槽。