【发布时间】:2017-04-12 03:32:47
【问题描述】:
所以,我最近编写了一个代码来计算 C 代码和 MIPS 代码中二进制 1 的数量。我在 C 中通过使用余数并增加 count_one 变量来做到这一点。在 MIPS 中,我执行了相同的程序,但我移动了数字的字节,直到它计算出所有的 1。但是,我想尝试学习如何使用指针,但我似乎无法掌握这个概念。我的 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 中是如何完全工作的,阅读后我仍然不明白。关于如何实现指针有什么建议吗?
【问题讨论】:
标签: c pointers stack mips stack-pointer