assembly - "muli"是 MIPS 指令吗?它是在哪里定义的?

标签 assembly mips instructions

我有来自类幻灯片的以下 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”根本不是一个命令(至少我在我的任何引用文献中都没有看到它)。

我错过了什么?如果这是一个愚蠢的问题,我深表歉意,但它困扰着我。

最佳答案

顺便说一句,以防万一其他人来搜索同样的问题,我经过长时间的搜索找到了一些东西。

这是来自上一版本教科书的勘误表:

. . . 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/

相关文章:

linux - Mips 和 mipsel 工具链为同一可执行文件提供不同的堆栈信息

assembly - MIPS 程序 jr $ra 指令和堆栈处理

c++ - MIPS 语言中的嵌套和递归过程

python - 如何安装py.test?

instructions - 开发人员应该是设计师吗?

c - 为什么 pushl %ebp 和 movl %esp, %ebp 在每个 ASM 函数的开头?

gcc - 推送 ebp : operand type mismatch for `push'

assembly - 关于8086实模式 'call'

c - 理解汇编递归函数

assembly - bootsect.s : How com that we can access the next line after moving the code itself away?