我正在上一门关于计算机组织和架构的课程。 我们已经做了一些练习。其中之一是将汇编代码转换为机器指令。
我坚持将movia
转换为机器指令。
我知道它包含2个操作,orhi
和addi
。
这是汇编中的代码:
movia r8, 50000
该练习指出r0
为0x0
,r8
为0x8
。
因此,orhi
将是:orhi r8, r0, %hiadj(50000)
,添加内容为:addi r8, r8,%lo(50000)
我已将orhi
收到:
00000 01000 1100001101010000 110100
___________________r0____r8_______50000________0x34(opcode)
但我必须在50000上使用%hiadj
!我不知道该怎么办?我已经搜索了一下,但还没有找到足够明确的答案。
我很陌生,但我真的很想明白!那么,你如何使用%hiadj
?对不起,如果问题不明确,但如果你想提供帮助,我会尝试解释更多。
答案 0 :(得分:1)
%hiadj
是其操作数的16个最高有效位,如果movia
对16个最低有效位进行符号扩展,则进行调整。在50000
的情况下,16个最高有效位为0
,并且没有符号扩展名。
所以%hiadj(50000)
只是0
。