在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'然后只要我需要引用所分配空间的大小,就使用此符号。
这可能吗?我尝试使用谷歌搜索,但找到资源非常棘手。
感谢。
答案 0 :(得分:1)
您需要.eqv指令。它类似于C或C ++中的#define。
.eqv SPACE_SIZE 40
请参阅:http://courses.missouristate.edu/KenVollmar/mars/Help/MacrosHelp.html
但是,请查看您是否可以使用更好的名称SPACE_SIZE
。
重新谷歌:通过"SPIM MIPS simulator preprocessor"搜索找到了这个。