计算分支地址

时间:2016-08-04 06:55:01

标签: branch mips

我和mips一起工作。 我对机器代码和mips代码感到困惑。 如果我使用mips,我可以看到分支的地址是我们需要从分支后的指令跳转的字数。 我不明白的是它是如何运作的"背后的景象" ?以及"左移" 2是参与此案? 我需要用4字节(字)对齐这个字,所以实际上我在mips中看到的地址是字数* 4 =我们需要产生的字节数?

另一个问题: 如果左转是3?会发生什么?它会给我错误的地址吗?

1 个答案:

答案 0 :(得分:0)

在MIPS架构中,分支是通过在给出指令后立即比较值来完成的,而不依赖于先前的操作或标志。这占用了指令格式的空间,只留下16位作为分支地址。这个地址太小,不是特别有用,所以不是将分支到该地址,而是将相对分支到它自己的地址。此分支偏移的计算由汇编程序处理,因此看起来就像分支操作将直接分支到标签/地址。

来源:http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html