我正在寻找使用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?
我很困惑。任何帮助我指明正确方向的帮助都会很棒。
答案 0 :(得分:1)
来自Microblaze Refference Guide:
B类指令有一个源寄存器和一个16位立即数 操作数(可以通过在B类之前扩展到32位 用imm指令教学。)
这意味着,如果您使用汇编语言编写,则可以立即使用32位,无后顾之忧:
or r1, r0, 0x12345678
汇编程序将其扩展为:
imm 0x1234
or r1, r0, 0x5678