...
{
int *r1, *r2;
r1 = GetCorrectRegister(first);
r2 = GetCorrectRegister(second);
switch ((OpCode)current.opcode)
{
case OpCode.ADDR:
r2 = r1 + r2;
break;
}
}
...
Это очевидный, самый простой способ решения этой проблемы.Тем не менее, я бы предпочел не использовать небезопасный метод, если я могу избежать его.По сути, у меня есть целые числа, которые представляют регистры.Существуют инструкции по сборке, которые принимают в качестве аргументов мнемонику регистра.Я бы предпочел не иметь логику, чтобы определять, какую переменную назначать в каждой ветви оператора switch, или создавать какие-то функции Kludgey GetRegisterValue (мнемоника) и SetRegisterValue (мнемоника).Есть ли какой-нибудь C # y способ сделать что-то подобное?