gpt4 book ai didi

assembly - MIPS指令集移动vs加/加0是否存储值?

转载 作者:行者123 更新时间:2023-12-04 06:24:54 25 4
gpt4 key购买 nike

我目前正在上一门计算机组织和汇编语言类(class),该类(class)主要使用MIPS指令集来教授汇编语言。

我注意到教授在网上发布的许多示例都使用add或addi将值移动到$ a0参数寄存器中以调用打印服务,如下所示...

# store the first integer in $a0 and print
add $a0, $zero, $t0
li $v0, 1
syscall

或者...
# store the first integer in $a0 and print
addi $a0, $t0, 0
li $v0, 1
syscall

我还在线上注意到了一些示例,其中其他示例只是使用move指令来完成相同的操作,如下所示...
# store the first integer in $a0 and print
move $a0, $t0
li $v0, 1
syscall

在这种情况下,使用add或addi指令比仅使用move优先吗?如果是这样,那为什么呢?有性能差异吗?还是只是口味问题?

最佳答案

move指令不是真正的指令-它是伪指令,汇编程序将其转换为add指令。

这些伪指令有很多,例如https://en.wikipedia.org/wiki/MIPS_architecture#Pseudo_instructions

这种类型的事情在RISC处理器上非常普遍,您需要一个最小的指令集,而一条特定的指令可能用于多个目的。

关于assembly - MIPS指令集移动vs加/加0是否存储值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9116018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com