Получить значение переменной в регистр с AsmJit
Как я могу получить значение переменной в регистр, используя API AsmJit? Что-то вроде ниже?
int x = 234;
Assember a;
a.mov(rax, $value_of_x);
1 ответ
Решение
AsmJit поддерживает непосредственные операнды, все что вам нужно это:
using namespace asmjit;
// Create and configure X86Assembler:
X86Assembler a(...);
// The answer:
int x = 234;
a.mov(x86::rax, x);
или просто
a.mov(x86::rax, 234);
В предыдущих примерах использовались перегрузки функций, которые принимают непосредственные значения напрямую. Тем не менее, также возможно создать Imm
операнд и использовать его в вашем коде динамически:
Imm x = imm(234);
a.mov(x86::rax, x);
Или же:
a.mov(x86::rax, imm(x));