2014-01-05 103 views

回答

1

看一看jaljr$fp$sp和MIPS调用约定(S)
是的,你就无法摆脱的标签东西

0

的问题是,你不能以你用高级语言思考的方式思考汇编。这是一个完全不同的世界。

你没有方法,你没有循环。有条件的分支和跳跃是你所有的。忘记语言施加的执行控制 - 你已经回到了GOTO为王的土地。所以就像@deviantfan说的那样,你将不得不习惯jal(跳转和“链接”,也就是保存电脑$ra)和jr $ra

而你没有阵列。你甚至没有变数,而不像HLL那样。范围的想法是完全陌生的。你所拥有的全部是寄存器,属于谁把东西放进去。和内存位置,可以由任何人写。如果你想考虑像变量那样的东西,记住它们都是全局变量。这就是MIPS调用约定@deviantfan提到的地方。如果你写了一个函数(也就是说,用jal调用的一段代码以jr $ra结尾,那么要遵循这些约定,所以你不要把垃圾放到你的调用者的寄存器,并且完全取决于你确定你正在写入的数据在你的意思之内,并且不会覆盖别人正在使用的内存位置,因为没有“字符串”的概念,或者 - 只是一堆可能包含从ASCII任何形式的数据,以浮点数字字节

这就是电脑如何真正工作其他一切的HLL给你只是抽象(又名糖衣)进行。编程更简单,更可靠。