このCコードを使用してMIPSで構造体を作成するにはどうすればよいですか?私は何かを書きましたが、それがどのように行われているかわかりません。バイナリ検索ツリーを作成しようとしていますが、構造体を作成する方法を理解できないようです。誰か助けてくださいMIPSバイナリ検索ツリー構造を作成する
struct BSTNode
{
struct BSTNode *left;
struct BSTNode *right;
int val;
};
このようにしますか?
node:
subu $sp, $sp, 32
sw $ra, 28($sp)
sw $fp, 24($sp)
sw $s0, 20($sp)
sw $s1, 16($sp)
sw $s2, 12($sp)
sw $s3, 8($sp)
addu $fp, $sp, 32
# capture the parameters:
addi $s0, $a0, 0 # $s0 = value
addi $s1, $a1, 0 # $s1 = left
addi $s2, $a2, 0 # $s2 = right
li $a0, 12 # it needs 12 bytes for a new node.
li $v0, 9 # sbrk is syscall 9.
syscall
addi $s3, $v0, 0
beqz $s3, main_TESTCASE_ERR_MSG1
sw $s0, 0($s3) # node->number = number
sw $s1, 4($s3) # node->left = left
sw $s2, 8($s3) # node->right = right
move $v0, $s3 # put return value input into v0.
# release the stack frame:
lw $ra, 28($sp) # restore the Return Address.
lw $fp, 24($sp) # restore the Frame Poinputer.
lw $s0, 20($sp) # restore $s0.
lw $s1, 16($sp) # restore $s1.
lw $s2, 12($sp) # restore $s2.
lw $s3, 8($sp) # restore $s3.
addu $sp, $sp, 32 # restore the Stack Poinputer.
jr $ra # return.
## end of node