Я создаю эмулятор MIPS с использованием C и пытаюсь создать метод для BEQ и BNE, однако действия меня смущают.Ниже приведены действия, которые выполняются в MIPS, а также то, как я их интерпретировал, что, по-видимому, неверно.
BEQ if (rs == rt) pc + = смещение * 4
//beq
else if(opCodeType == 4)
{
if(registers[rsVariable] = registers[rtVariable])
{
pc = pc + offset*4;
}
}
BNE if (rs! = Rt) pc + = смещение * 4
//bne
else if(opCodeType == 5)
{
if(registers[rsVariable] != registers[rtVariable])
{
pc = pc + offset*4;
}
}
Вся помощь очень ценится, так как это последний кусок головоломки!