如何使用microblaze组件将32位值加载到寄存器

时间:2016-11-19 02:12:34

标签: assembly microblaze

我正在寻找使用Microblaze的汇编语言创建一些代码,我不知道如何加载32位数字的通用寄存器。我查看了指令集,但只看到了可以加载的16位立即值。

有人可以举例说明如何做到这一点。

我可以用

shi r8 r0 %0  /* where %0 is to the top 16 bits of a variable */
then shift it ?
and then load r8 bottom bytes?

我很困惑。任何帮助我指明正确方向的帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

来自Microblaze Refference Guide

  

B类指令有一个源寄存器和一个16位立即数   操作数(可以通过在B类之前扩展到32位   用imm指令教学。)

这意味着,如果您使用汇编语言编写,则可以立即使用32位,无后顾之忧:

or r1, r0, 0x12345678

汇编程序将其扩展为:

imm 0x1234
or r1, r0, 0x5678