Mips 连接两个整数,将它们打包到一个寄存器中的 16 位字段中
Mips concatenate two integers, packing them into 16-bit fields in one register
我有两个整数
li $v0, 14
li $v1, 8
因为十进制 14
的十六进制值为 000E
而 8
的十六进制值为 0008
,
我怎样才能将 000E
和 0008
组合成 000E0008
,所以每个整数最多占用 16 位
您可以将第一个整数左移 16 位,然后按位合并到第二个整数 OR
:
sll $v0, $v0, 16 # $v0 = $v0 << 16
or $v1, $v0, $v1 # $v1 = $v0 | $v1 (result)
我有两个整数
li $v0, 14
li $v1, 8
因为十进制 14
的十六进制值为 000E
而 8
的十六进制值为 0008
,
我怎样才能将 000E
和 0008
组合成 000E0008
,所以每个整数最多占用 16 位
您可以将第一个整数左移 16 位,然后按位合并到第二个整数 OR
:
sll $v0, $v0, 16 # $v0 = $v0 << 16
or $v1, $v0, $v1 # $v1 = $v0 | $v1 (result)