gpt4 book ai didi

assembly - MIPS assembly 标签

转载 作者:行者123 更新时间:2023-12-02 07:31:01 25 4
gpt4 key购买 nike

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 的内容为零,否则每次都会执行 BRANCH1 吗?

来自维基:
标签是让您的生活变得简单的东西。当你引用一段程序时,
不必计算行数,您只需给它一个名称
您可以在循环、跳转和变量名称中使用它。
标签不会出现在您的最终代码中,它们只是为了方便起见,这是您从典型的 MIPS 汇编器中获得的少数好处之一。它还使汇编程序的工作变得轻松,因为它现在可以轻松地重新定位和链接代码。如果您不知道这些是什么,请不要担心,稍后会出现。

由此,我认为标签只不过是一个线引用。这意味着跳过代码(使用 bne、beq、jr、j 等)是防止读取特定行上的指令的唯一方法。这是正确的想法吗?

最佳答案

标签只是为了让您可以通过跳转引用该行。 CPU 本身只会看到机器代码。代码中的任何注释也是如此。它们只存在于汇编程序中 - 然后将其转换为机器代码。

如果您不希望它执行,则需要跳过一行。

关于assembly - MIPS assembly 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652995/

25 4 0