使用C将装配指令转换为十六进制

时间:2017-02-05 17:56:52

标签: c mips

我正在尝试使用C来制作一个小型汇编程序。我在说明书中读得很好,但我正在努力接受指令并正确地将其转换为十六进制。如何获取多个十进制值并将它们组合成一个32位二进制数以转换为十六进制?

以下是我现在对指令addi $t0,$t1,10

的看法
opcode = opcode >> 2;
rs = rs >> 1;
rt = rt >>1;
imm = imm >> 15;
printf("0x%X:\t0x%X%X%X%X",list[i].a,opcode,rs,rt,imm);

1 个答案:

答案 0 :(得分:1)

首先或(|)将其分成一个数字。例如,这肯定是错误的。只是为了得到这个想法。

int hex = (opcode<<24)|(rs<<16)|(rt<<8)|(imm);

然后:

printf("0x%X:\t0%X",list[i].a, hex);