我可以制作一个方法并在数组上使用它吗?例如像这样java:bubbleSort(a)
,还是只能跳转到标签内容?
问问题
135 次
2 回答
1
看看jal
and jr
, $fp
,$sp
和 MIPS 调用约定
是的,你不会摆脱标签的东西
于 2014-01-05T13:59:03.170 回答
0
问题是您不能以高级语言的方式思考汇编。这是一个完全不同的世界。
你没有方法,你没有循环。条件分支和跳转就是你所拥有的。忘记语言强加的执行控制——你已经回到了 GOTO 为王的土地。所以就像@deviantfan 说的那样,你将不得不适应jal
(跳转和“链接”,也就是将 PC 保存在$ra
)和jr $ra
.
而且你没有数组。你甚至没有变量,不像 HLL 那样。范围的概念完全是陌生的。你所拥有的只是寄存器,它属于在其中放入东西的人。和内存位置,任何人都可以写入。如果您想将它们视为变量,请记住它们都是全局变量。这就是@deviantfan 提到的 MIPS 调用约定的用武之地。如果您编写一个函数(即,jal
以jr $ra
,由您决定是否遵循这些约定,这样您就不会在调用者的寄存器中放入垃圾。并且完全由您来确保您正在写入的数据到达您想要的位置,并且不会覆盖其他人正在使用的内存位置。因为也没有“字符串”的概念 - 只是一堆字节,可能包含从 ASCII 到浮点数字的任何类型的数据。
这就是计算机真正工作的方式。HLL 为您提供的其他一切都只是抽象(也称为糖衣),以使编程更容易和更可靠。
于 2014-01-06T18:32:36.330 回答