Ich möchte eine Subroutine schreiben, die eine Zeichenkette als Parameter (von der Benutzereingabe) nimmt und im dynamischen Gedächtnis speichert.MIPS: wie man eine Zeichenkette im dynamischen Speicher (Haufen) speichert
das ist, was ich kam mit:
.data
name: .space 32 # allocates 32 bytes of memory to store a name
namePrompt: .asciiz "name: "
.text
.globl main
main:
la $a0, namePrompt
li $v0, 4 # system call to print a string.
syscall # print namePrompt.
la $a0, name # adress where to store the input
li $a1, 32 # max input size in bytes
li $v0, 8
syscall
la $a0, name # name as first parameter of save_string subroutine
jal save_string
save_string:
move $s0, $a0 # s0 = name.
# allocate 32 bytes in heap memory.
li $v0, 9
li $a0, 32
syscall
sw $s0, 0($v0) # store the name in allocated memory
jr $ra
Aber ich habe das Gefühl, dass dies nicht der richtige Weg ist, es zu tun.
Wie kann ich den Speicherplatz danach freigeben?