Mips在编译之前做算术运算

Mips在编译之前做算术运算,mips,precompile,mars-simulator,Mips,Precompile,Mars Simulator,在C中,我可以这样做: #定义宽度200 #定义高度200 #定义尺寸宽度*高度 如果我这样做,生成的代码就不会有不必要的WIDTH*HEIGHT的乘法,因为预编译器会预先计算它,并用$40000$替换大小。在mips中是否有同样的方法(如果有必要,更具体地说是使用火星模拟器?)?i、 我有 .eqv宽度200 .eqv高度200 如果有办法在预编译器中处理mult,我不想浪费几个周期手动执行mult。MARS在表达式求值方面非常有限。它将处理像foo+1这样的事情,其中foo是一个标签。但是它

在C中,我可以这样做:

#定义宽度200
#定义高度200
#定义尺寸宽度*高度

如果我这样做,生成的代码就不会有不必要的WIDTH*HEIGHT的乘法,因为预编译器会预先计算它,并用$40000$替换大小。在mips中是否有同样的方法(如果有必要,更具体地说是使用火星模拟器?)?i、 我有

.eqv宽度200
.eqv高度200


如果有办法在预编译器中处理mult,我不想浪费几个周期手动执行mult。

MARS在表达式求值方面非常有限。它将处理像
foo+1
这样的事情,其中
foo
是一个标签。但是它不能处理像
addi$a0,$0,1+2这样的事情。据我所知,它的解析器甚至不能将
*
识别为有效的令牌。我只是在github花了几分钟的时间在它的内脏里潜入。正如@Michael所说,这是一个非常有限的模拟器。如果您使用的是实际的MIPS汇编程序,那么您可以期望得到这种支持,但不能通过这种方式。MARS在表达式计算方面非常有限。它将处理像
foo+1
这样的事情,其中
foo
是一个标签。但是它不能处理像
addi$a0,$0,1+2这样的事情。据我所知,它的解析器甚至不能将
*
识别为有效的令牌。我只是在github花了几分钟的时间在它的内脏里潜入。正如@Michael所说,这是一个非常有限的模拟器。如果您要使用实际的MIPS汇编程序,您可以期望得到这种支持,但不能通过这种方式。