Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MIPS中使用带链表的syscall 9_Mips_System Calls_Mars Simulator - Fatal编程技术网

在MIPS中使用带链表的syscall 9

在MIPS中使用带链表的syscall 9,mips,system-calls,mars-simulator,Mips,System Calls,Mars Simulator,我试图在MIPS中实现一个链表,我还需要为它分配内存。在我看到的每一个例子中,他们都假设列表中的第一个元素在某个寄存器上,但实际上他们并没有解释如何实际操作 我尝试过这个,但它显示“存储地址未在字边界0x10040319上对齐” 我这里有两个问题,但它们是相互关联的。一个是如何使用syscall 9正确分配内存,另一个是如何引用内存以便在链表中使用(我实际上需要使用链表实现一个排序算法,因为我需要能够排序任意数量的元素(不是固定数量),这是第1步哈哈)。谢谢。哦,天哪,显然是他们上传的作业模拟器

我试图在MIPS中实现一个链表,我还需要为它分配内存。在我看到的每一个例子中,他们都假设列表中的第一个元素在某个寄存器上,但实际上他们并没有解释如何实际操作

我尝试过这个,但它显示“存储地址未在字边界0x10040319上对齐”


我这里有两个问题,但它们是相互关联的。一个是如何使用syscall 9正确分配内存,另一个是如何引用内存以便在链表中使用(我实际上需要使用链表实现一个排序算法,因为我需要能够排序任意数量的元素(不是固定数量),这是第1步哈哈)。谢谢。

哦,天哪,显然是他们上传的作业模拟器。 我从官方网站下载了Mars-MIPS的最新版本,它成功了。嗯,这很尴尬

# Allocate memory with syscall 9
li $v0, 9
addi $a0, $zero, 8  # Reserve 8 bytes, 4 for int data, 4 for pointer to next
syscall
# Make $t0 point to the beginning of the reserved memory?
add $t0, $v0, $zero
# Create linked list node
addi $t1, $zero, 10   # $t1 has the int data
sw $t1, 0($t0)      # $t1 is now node->data
sw $zero, 4($t0)      # node->next is NULL