Получить значение переменной в регистр с 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));
Другие вопросы по тегам