所以,我最近做了一个代码来计算C代码和MIPS代码中二进制1的数量。我通过使用余数值并增加一个count_one变量在C中这样做。在MIPS中,我做了同样的程序,但我移动了数字的字节,直到它将所有的1计算在内。不过,我想试着学习如何使用指针,但我似乎无法理解这个概念。我的MIPS代码如下:如何操作MIPS代码并使用堆栈指针?
.data
prompt: .asciiz "Enter a integer: "
.text
li $v0,4
la $a0, prompt
syscall
li $v0,5
syscall
move $s0,$v0
j count
count:
beq $s0,0, exit
andi $t0,$s0,1
add $t1,$t1,$t0
srl $s0,$s0,1
j count
exit:
move $a0,$t1
la $v0,1
syscall
li $v0,10
syscall
我得到这个完整的MIPS代码,但我对如何指针完全MIPS工作和读书我还是不明白后不确定。任何关于如何实现指针的建议?
谢谢。我想我的主要困惑是声明内存大小,并找出如何基于8,4,0($ sp)行来实现我的变量。 – CodeFreak
我很乐意提供帮助。祝你好运。 – oklas
你能解释一下整个分配足够的内存部分吗? – CodeFreak