Assembly SPIM MIPS模拟器将数字分配给符号以供以后重用

Assembly SPIM MIPS模拟器将数字分配给符号以供以后重用,assembly,Assembly,在MIPS中,我可以这样分配空间: .data space_here: .space 40 # Allocate 40 bytes 稍后,使用SPIM系统调用,我可以将最大长度为40字节的字符串读取到此内存位置,如下所示: 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

在MIPS中,我可以这样分配空间:

.data
space_here: .space 40 # Allocate 40 bytes
稍后,使用SPIM系统调用,我可以将最大长度为40字节的字符串读取到此内存位置,如下所示:

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
然而,在将来,我可能想改变这个,而是有一个80字节的空间和加载80字节。这意味着我必须将代码中出现的40更改为80

理想情况下,我想做的是,通过某种预处理,将40分配给一个符号,比如“SPACE_SIZE”,然后在需要引用分配的空间大小时使用这个符号

这可能吗?我尝试过谷歌搜索,但找到资源是相当棘手的


谢谢。

您需要.eqv指令。它类似于C或C++中的定义。
.eqv SPACE_SIZE 40
见:

但是,请看看你是否能用一个更好的名字,
SPACE\u SIZE


Re google:通过搜索找到了这个。

未来人注意:这是针对mars MIPS sim卡的,而不是您可以使用apt get install找到的“spim”sim卡。进一步的研究揭示了一个spim预处理器,它可以使用“app”命令(汇编预处理器)运行,但最后我个人刚刚切换到mars。您的程序运行在其上的“内置”内核包含更多的系统调用,甚至还附带了一个IDE(尽管您仍然可以使用java-jar Mars.jar program.s从命令行运行)。