MIPS 的组件会读取每个标签吗?忽略任务和语法,我只是快速地将一些东西放在一起。
add reg3, reg1, $zero
add reg1, reg1, reg2
beq reg1, reg3, BRANCH1 #reg2 contents are zero
bne reg1, $zero, BRANCH2 #reg1 doesn't equal zero
BRANCH1: add returnReg, reg1, $zero
BRANCH2: add returnReg, reg2, $zero
jr returnAddress
这会逐行读取,包括标签,除非它们被跳过?例如,除非 reg1 的内容等于 0,否则 BRANCH1 每次都会执行吗?
来自维基:标签可以让你的生活变得简单。当您引用程序的一部分时,您不必计算行数,只需给它一个名称即可您可以在循环、跳转和变量名称中使用它。
标签不会出现在您的最终代码中,它们只是为了方便而出现,这是您从典型的 MIPS 汇编器中获得的少数好处之一。它还使汇编程序的工作变得轻松,因为它现在可以轻松地重新定位和链接代码。如果您不知道这些是什么,请不要担心,稍后会介绍。
由此看来,我认为标签只不过是一个行参考。这意味着跳过代码(使用 bne、beq、jr、j 等)是防止读取特定行上的指令的唯一方法。这是正确的想法吗?