我有来自类幻灯片的以下 MIPS 代码(用于交换数组中的相邻元素):
muli $2, $5,4
add $2, $4,$2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
这个确切的代码将通过谷歌出现,所以它一定是各种大学使用的一种标准示例。
我都明白了;在类里面,我假设“muli”是乘法立即数。 (编者注:乘以 2 的幂最好用左移来完成,如 sll $2, $5, 2
,而不是乘法。没有编译器会发出这个,你只需要写这个手动降低此交换函数的数组索引。)
现在看来“muli”根本不是一个命令(至少我在我的任何引用文献中都没有看到它)。
我错过了什么?如果这是一个愚蠢的问题,我深表歉意,但它困扰着我。
最佳答案
顺便说一句,以防万一其他人来搜索同样的问题,我经过长时间的搜索找到了一些东西。
这是来自上一版本教科书的勘误表:
block 引用>. . . 12 There is no pseudoinstruction for MIPS with the mnemonic "muli" as listed in the middle of Figure 1.3. . . .
所以...这是书中的一个错字。谜团已揭开。耶!
关于assembly - "muli"是 MIPS 指令吗?它是在哪里定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28668054/