Assembly 加载单词和移动之间的区别?

Assembly 加载单词和移动之间的区别?,assembly,mips,nios,Assembly,Mips,Nios,两者的区别是什么 ldw r8,0(r4) 及 mov r8、r4 Load word表示“从内存复制”,但当Load word从r4复制时,它是从寄存器复制,而不是从内存复制,对吗?lw指令(我假设这就是您的意思,因为ldw不是标准的MIPS指令,尽管在这个答案的上下文中,所有的加载都是类似的)从0+r4指定的内存地址加载一个字,而move1只需将r4的值传输到r8 例如,假设r4当前是1234,存储在内存中1234的单词是5678 因此,区别在于: move r8, r4

两者的区别是什么

ldw r8,0(r4)

mov r8、r4


Load word表示“从内存复制”,但当Load word从r4复制时,它是从寄存器复制,而不是从内存复制,对吗?

lw指令(我假设这就是您的意思,因为
ldw
不是标准的MIPS指令,尽管在这个答案的上下文中,所有的加载都是类似的)从
0+r4
指定的内存地址加载一个字,而
move
1只需将
r4
的值传输到
r8

例如,假设
r4
当前是
1234
,存储在内存中
1234
的单词是
5678

因此,区别在于:

move r8, r4            ; r8 is now 1234
lw   r8, 0(r4)         ; r8 is now 5678


1移动
指令“实际上是一条伪指令,
move$rt,$rs
被编码为
addi$rt,$rs,0

谢谢你的回答,这正是我所想的,为什么我的r8在处理来自测试函数的调用时总是0?背景是这里和这里@Nick,仔细看你的另外两个问题,
testmytime
的初始值为零。它似乎只在每次测试迭代中使用所有的
randr
和其他随机的东西进行更改。