Описание тега asmjit
AsmJit - это полный JIT и удаленный ассемблер для языка C++.
1
ответ
Ссылаясь на глобальную переменную с AsmJit
Мне нужно загрузить адрес существующей глобальной переменной / внешней переменной в регистр с помощью операции lea. Возможно ли это в AsmJit? Кажется, что связанная функция ptr принимает только GpVar, который должен быть создан в AsmJit.
27 янв '14 в 03:56
0
ответов
Замена asmjit getgpArg(), getxmmArg() и make()
В настоящее время я работаю над устаревшей кодовой базой, которая использовала старый asmjit с намерением перейти на использование последнего asmjit. Я был в состоянии выяснить замены подписи, например, call, setArg Мне нужна помощь в понимании альт…
31 дек '18 в 20:59
1
ответ
Как встроить asmjit в собственный проект C++?
Я новичок в asmjit (и несколько новичок в C++), и сейчас я пытаюсь заставить asmjit работать в моем проекте C++. Я использую машину Windows с Visual Studio 17 и C++17, и моя первая попытка использования cmake уже работала нормально. Тем не менее, я …
16 июл '18 в 08:53
1
ответ
Получить значение переменной в регистр с AsmJit
Как я могу получить значение переменной в регистр, используя API AsmJit? Что-то вроде ниже? int x = 234; Assember a; a.mov(rax, $value_of_x);
28 май '14 в 17:20
2
ответа
GCC -D вариант не делает то, что я думал, что это будет
Я пытаюсь использовать AsmJit в проекте. Это make-файл, который я использовал: CC = g++ CFLAGS = -D ASMJIT_API -I dep/ test: src/main.cpp $(CC) $(CFLAGS) src/main.cpp -o test.exe Я получаю ошибки компилятора при попытке этого, поэтому вместо этого я…
03 мар '12 в 01:45
1
ответ
AsmJit эквивалент mov eax,[ecx+0CC]
Что такое asmjit эквивалент mov eax,[ecx+0CC]? Это близко: c.mov_ptr(x86::eax, x86::ptr(x86::ecx, 0x0CC)); но аргументы неверны. Есть идеи?
04 фев '16 в 07:55
1
ответ
Как получить текущую инструкцию в asmjit?
Согласно этому посту, в x64 можно выполнить lea rax, [rip] чтобы получить текущую инструкцию. Как бы я сделал это с помощью asmjit?
20 апр '16 в 05:02
1
ответ
Не могу поймать исключение в asmjit
Я использую asmjit, и я столкнулся с проблемой. Когда исключение C++ вызывается функцией, вызываемой в сгенерированном коде jit (x64), оно не может быть перехвачено, даже если я делаю try-catch вне вызова функции jit, почему и как я могу перехватить…
02 ноя '16 в 13:42
1
ответ
Ошибка при использовании AsmJit в приложении Qt GUI
ОС: Windows 10 IDE: Visual Studio 2015 Мне нужно использовать библиотеку AsmJit ( https://github.com/asmjit/asmjit) внутри моего приложения Qt GUI. Но это как-то несовместимо. Когда определенные заголовки включены из QT (QWidget и т. Д.), Вещи начин…
10 фев '17 в 00:59
3
ответа
Получить ptr из вызова функции asmjit
Я пытаюсь сгенерировать вызов функции используя AsmJit к которому я передаю char*, это char* сам по себе извлекается из другого вызова функции. Я опробовал это: typedef const char* getStr(); const char* getStrImpl() { return "hello pie"; } void use_…
17 дек '16 в 12:06
0
ответов
ASMJIT неверный указатель
cc.addFunc(FuncSignatureT<int, r_State*>()); X86Gp state_ref = cc.newUIntPtr(); cc.setArg(0, state_ref); CCFuncCall* print_call = cc.call(imm_ptr(printf), FuncSignatureT<int, const char*, uint32_t*>()); print_call->setArg(0, imm_ptr("…
15 дек '18 в 04:16
1
ответ
Как я могу использовать созданную мной библиотеку без ошибок из источника, но не компилировать для моего собственного проекта?
Я бы хотел попробовать библиотеку AsmJit. Собрать его с помощью cmake и make из исходников не составило труда, все примеры были скомпилированы и выполнены безупречно. Я также сделалmake install для экспорта файлов зависимостей. Затем я хотел скомпил…
06 июн '20 в 17:49
1
ответ
AsmJit испускает байты или x64 абсолютный дальний прыжок
Я хочу создать абсолютный дальний прыжок с помощью asmjit. Байты этого скачка: FF 25 00 00 00 00 // jmp qword ptr [null offset] 00 00 00 00 00 00 00 00 // 8-byte jump target address Но я не знаю, как испустить jmp qword ptr [*]со смещением 0 и байта…
18 авг '20 в 21:09
0
ответов
Вызов функции-члена C++ путем сборки (с использованием asmjit)
Я просто экспериментирую с JIT-компиляцией, используя asmjitбиблиотека. В частности, я хочу вызвать функцию-член экземпляра класса, используя адрес этого экземпляра в качестве аргумента для функции jitted. Я понимаю, что я должен использовать адрес …
22 сен '21 в 17:27
1
ответ
Установите регистр XMM через расположение адреса для X86-64
У меня есть значение с плавающей запятой по некоторому адресу в памяти, и я хочу установить регистр XMM на это значение, используя адрес. Я использую асмджит . Этот код работает для 32-битной сборки и устанавливает регистр XMM v к правильному значен…
22 ноя '21 в 11:20
1
ответ
Использование операнда m64 для инструкции AND (asmjit)
я играю с asmjitи генерирующая сборка. Тем самым я заметил, что нельзя использовать 64-битные константы для инструкций (исключая mov что имеет смысл). Из-за этого я помещаю 64-битные константы в стек и использую их, обращаясь к стеку, вместо того, ч…
16 янв '22 в 13:53
0
ответов
AsmJit как получить необработанные байты
Как закодировать такую инструкцию mov eax, 0x00123456 и получить b8 56 34 12 00? Я знаю, как кодировать, но как получить вывод в буфер с помощью AsmJit, потому что кодирование вручную - не лучший способ решить проблему? Это можно сделать проще, ис…
20 июн '22 в 21:27
0
ответов
Загрузка абсолютного указателя для регистрации через LEA
Как загрузить абсолютный адрес для регистрации через lea?Я попробовал этот код: asm.lea(asmjit::x86::rax, (uint64_t) (address)); И я пытаюсь использовать этот код asm.lea(asmjit::x86::rax, asmjit::x86::ptr((uint64_t) (address))); Но все они не работ…
07 июн '23 в 20:52
0
ответов
Что вызывает этот EXC_BAD_ACCESS (код =EXC_I386_GPFLT)
Я использую asmjit для JIT-компиляции языка сценариев в машинный код X86-64. Когда я перехожу к JIT-компилированным функциям, они, кажется, работают, но когда они вызывают одну из моих функций C++, которые, в свою очередь, вызываютprintf(илиcout), п…
12 авг '23 в 06:18
1
ответ
Как asmjit получает перемещение кода при использовании AsmParser(&a).parse
Я использую asmjit в своем коде на С++ и определил функцию, как показано ниже: // parse asm_str to byte code, return the length of byte code int assemble(bool isx64, unsigned long long addr, const char* asm_str, char buffer[MAX_INSTRUCTION_LENGTH]) …
30 апр '23 в 14:26