如何在不使用lui的情况下将32位常量加载到寄存器 [英] How to load 32 bit constant to a register without using LUI

查看:14
本文介绍了如何在不使用lui的情况下将32位常量加载到寄存器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试加载32位常量0x1234ABCD以在MIPS程序集中注册$t0。但是,我无法使用lui执行此操作。我的直觉是使用两个addi,但我不确定如何做到这一点。我必须需要2个或更多才能获得32位信息。我需要在不使用lui的情况下以某种方式设置高位。复制lui而不使用它的好方法是什么?

推荐答案

您可以结合使用orisll在3条指令中加载32位常量,而不使用lui

  ori $t1, $zero, 0x1234  # load the upper half in the lower bits of $t1
  sll $t1, $t1, 16        # move them to the upper half
  ori $t1, $t1, 0xABCD    # combine with the lower half

这篇关于如何在不使用lui的情况下将32位常量加载到寄存器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆