In MIPS, kann ich Speicherplatz zuweisen etwa so:SPIM MIPS simulator assign Nummer zu einem Symbol für die Wiederverwendung später
.data
space_here: .space 40 # Allocate 40 bytes
Später, ein SPIM Syscall ich mit einer maximalen String-Länge 40 Bytes in diese lesen kann, Speicherplatz, etwa so:
li $v0, 8 # Syscall number for read string
la $a0, space_here # Load the address of space_here into a0 register
li $a1, 40 # This is the maximum chars to load
syscall
Doch in Zukunft könnte ich will, dies ändern und stattdessen habe einen 80-Byte-Raum und Last 80 Bytes. Das bedeutet, dass ich beide Vorkommen von 40 bis 80 im Code ändern muss.
Was ich im Idealfall tun möchte, ist durch eine Art Vorverarbeitung zuweisen 40 zu einem Symbol, sagen wir "SPACE_SIZE" dann verwenden Sie einfach dieses Symbol, wenn ich die Größe des Speicherplatzes beziehen muss.
Ist das möglich? Ich habe versucht zu googeln, aber Ressourcen zu finden ist ziemlich schwierig.
Danke.
Hinweis für zukünftige Leute: Dies ist für die Mars MIPS-Sim, nicht die "Spim" -Sim, die Sie mit apt-get installieren finden können. Weitere Nachforschungen ergeben einen Spim-Präprozessor, der mit dem Befehl 'app' (Assembly-Pre-Prozessor) gestartet werden kann, aber am Ende habe ich nur auf mars umgestellt. Der 'eingebaute' Kernel, auf dem Ihr Programm läuft, enthält mehr syscalls und sogar eine IDE (obwohl Sie trotzdem mit java -jar Mars.jar program laufen können). – ipe369