gpt4 book ai didi

c - 如何操作 MIPS 代码和使用堆栈指针?

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:53 24 4
gpt4 key购买 nike

所以,我最近编写了一个代码来计算 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 中是如何完全工作的,阅读后我仍然不明白。关于如何实现指针的任何建议?

最佳答案

最常见的命令决定了数据的思想。

例如伪代码

inc $a0

此命令递增寄存器 $a0 中的数据,与数字一样使用它

lw $s1, 0($a0)

此命令从寄存器 $a0 指向的内存中加载数据,就像使用指针一样使用它

关于c - 如何操作 MIPS 代码和使用堆栈指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com