将装配转换为机器代码

时间:2014-10-10 12:15:29

标签: assembly machine-code intel-fpga nios

我正在上一门关于计算机组织和架构的课程。 我们已经做了一些练习。其中之一是将汇编代码转换为机器指令。

我坚持将movia转换为机器指令。

我知道它包含2个操作,orhiaddi

这是汇编中的代码:

movia r8, 50000 

该练习指出r00x0r80x8

因此,orhi将是:orhi r8, r0, %hiadj(50000),添加内容为:addi r8, r8,%lo(50000)

我已将orhi收到:

    00000 01000 1100001101010000 110100    
___________________r0____r8_______50000________0x34(opcode)

但我必须在50000上使用%hiadj!我不知道该怎么办?我已经搜索了一下,但还没有找到足够明确的答案。

我很陌生,但我真的很想明白!那么,你如何使用%hiadj?对不起,如果问题不明确,但如果你想提供帮助,我会尝试解释更多。

1 个答案:

答案 0 :(得分:1)

%hiadj是其操作数的16个最高有效位,如果movia对16个最低有效位进行符号扩展,则进行调整。在50000的情况下,16个最高有效位为0,并且没有符号扩展名。

所以%hiadj(50000)只是0