使用 lui(加载上立即数)和 ori(或立即数)将新值放入寄存器 [MIPS]

use*_*ood 1 assembly 32-bit mips

[MIPS]
假设$s0.

假设我现在想将另一个值放入$s0(例如 0x87654321),那么我必须通过操作luiori.

lui $s0, 0x8765
ori $s0, $s0, 0x4321
Run Code Online (Sandbox Code Playgroud)

我知道如果$s0is0在开头,这是有效的,但我实际上不确定该lui操作是否将后半部分设置为 0,或者它是否只是用我的新输入 0x8765 替换前半部分。

所以,我的问题是:
即使有存储值它也能工作吗?还是我必须设置to$s0的值,然后设置上半部分和下半部分?$s00

Jes*_*ter 5

您应该始终查阅有关此类问题的指令集参考。或者你甚至可以尝试一下。

但要回答你的问题,是的,lui清除低位。