MIPS汇编语言中“ move”和“ li”之间的区别

249

我正在练习将C代码转换为MIPS汇编语言,但在理解moveli在变量分配中的用法时遇到了麻烦

例如,要在MIPS中实现以下C行:

int x = 0;

如果我理解正确(尽管我对此表示高度怀疑),那么看起来这两种方法都可以在MIPS汇编器中使用:

move $s0, $zero
li $s0, $zero

我错了吗?这两行有什么区别?

黄昏-无效-

move指令将值从一个寄存器复制到另一个。li指令将特定的数值加载到该寄存器中。

对于特定情况,可以使用常数零或零寄存器来获得:

move $s0, $zero
li   $s0, 0

但是,没有寄存器会生成除零以外的其他值,因此,li如果需要其他一些数字,则必须使用该寄存器,例如:

li $s0, 12345678

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ISA(例如MIPS)和汇编语言之间的区别

来自分类Dev

ISA(例如MIPS)和汇编语言之间的区别

来自分类Dev

如何在汇编语言中加和乘双字

来自分类Dev

x86汇编语言中空终止字符串和不以空终止的字符串有什么区别

来自分类Dev

x86和x64体系结构的汇编语言之间有什么区别?

来自分类Dev

编程语言中“ this”和“ self”之间的区别

来自分类Dev

C语言中“ *”,“ *”和“ *”指针之间的区别

来自分类Dev

您如何在MIPS汇编语言中定义常量?

来自分类Dev

汇编语言中的错误“操作数不匹配:16位和8位寄存器”

来自分类Dev

结束MIPS汇编语言程序是否需要“ jr $ ra”?(MARS和QtSpim的行为有所不同!)

来自分类Dev

C语言中void和float函数之间的区别

来自分类Dev

C语言中(1)和(2)的printf之间的区别

来自分类Dev

C语言中scanf和getchar之间的区别

来自分类Dev

汇编语言中的阶乘

来自分类Dev

C语言中的random和Java语言中的random之间有什么区别吗?

来自分类Dev

如何在x86-64汇编语言中使用符号和溢出标志来确定CMOVL和CMOVNG中的“小于”?

来自分类Dev

计算机的堆栈和汇编语言

来自分类Dev

汇编语言2推和流行书

来自分类Dev

以8086汇编语言从内存中存储和检索号码

来自分类Dev

汇编语言8086键盘和鼠标中断

来自分类Dev

什么是汇编语言中的global _start?

来自分类Dev

汇编语言中“ ds:”的含义

来自分类Dev

汇编语言中的嵌套循环

来自分类Dev

汇编语言中的文件指针

来自分类Dev

汇编语言中的数字地址

来自分类Dev

汇编语言中的数据结构

来自分类Dev

检查汇编语言中的空字符

来自分类Dev

汇编语言中的简单代码

来自分类Dev

汇编语言中的 Bios 中断

Related 相关文章

热门标签

归档