我在 Assembly MIPS 中搞乱了 Stacks Push 和 Pops。我只能$sp
通过更改指针的索引来手动从堆栈中弹出数据,但是如何使用循环呢?
例子:
lw $t1, 0($sp) ## pops the first data at index 0
lw $t1, 4($sp) ## pops the second data at index 4
lw $t1, 8($sp) ## pops the third data at index 8
addui $sp, $sp, 12 ## Lets free our stack
现在我的问题是,如何循环执行此操作?如果我使用以下
addui $sp, $sp, 4
这意味着在我们的堆栈中释放 1 个空间。这并不意味着将堆栈指针递增到下一个索引。
我希望你们能明白我在这里想说的话。
我认为这里不允许使用 $t2lw $t1, $t2($sp)