170 похожих чатов

Коллеги, подскажите, как в visual studio в проекте вместе с

С++ использовать ассемблер MASM. Нагуглил способ включения через настройки проекта:
https://docs.microsoft.com/en-us/cpp/assembler/masm/masm-for-x64-ml64-exe?view=vs-2019

но немного не то, потому что хочу сделать что-то типа статической либы, функции из которой я смог бы юзать в плюсовом коде, и при этом делать сборку через cmake. Нашёл ещё такой код:
https://github.com/corbamico/masm64_simple_example

но в нём нет примера библиотек, и плюс юзается внешний отдельно установленный масм. Нет ли способа использовать студийный макро ассемблер?

9 ответов

16 просмотров

Ты же можешь добавлять отдельные файлы на масме? Они будут компилится в obj как остальные cpp? Нельзя ли просто собрать их в статическую либу после этого?

ARCHANGEL 🇺🇦- Автор вопроса
Kirill Bolshakov
Ты же можешь добавлять отдельные файлы на масме? О...

В том-то и дело, что нет. Если я создаю проект на cmake, как в образце с гитхаба, указываю язык для ассемблерных файлов asm_masm, то при сборке ошибок нет, но файлы просто не процессятся

ARCHANGEL 🇺🇦
В том-то и дело, что нет. Если я создаю проект на ...

Ну я в том числе про студийный проект, я видел в проектах файлы на асме (у них вместо ClCompile другой таргет в xml файле был). Я не знаю точно как это работает, но подозреваю, что точно так же создаётся obj файл и на общих основаниях линкуется дальше

ARCHANGEL 🇺🇦
А нет ли примеров?

Под рукой нет, но там это были файлы в рамках C++ проекта, а не отдельная либа

ARCHANGEL 🇺🇦- Автор вопроса
Kirill Bolshakov
Под рукой нет, но там это были файлы в рамках C++ ...

Такое у меня получалось сделать, если действовать как по ссылке от майкрософта, что я выше приводил. Но вот это не интегрируется с cmake, и непонятно, какой у того ассемблера синтаксис, потому что как к нему инклуды подключать, как либы указывать?

ARCHANGEL 🇺🇦- Автор вопроса
Kirill Bolshakov
Под рукой нет, но там это были файлы в рамках C++ ...

Вдруг вам будет интересно. Нашел пример: https://habr.com/ru/post/111275/ Он, конечно, так сходу не завёлся, в нём есть пара косяков - возвращали адрес локального буфера, забыли в плюсовом коде вызвать функцию, которая в ассемблере заимплеменчена, но если всё исправить, то оно компилируется и работает. Из минусов - непонятно пока, как всё это сделать с cmake, потому что сейчас нужно проекты в IDE конфигурировать

ARCHANGEL 🇺🇦
Вдруг вам будет интересно. Нашел пример: https://h...

Надо просто разобраться что происходит с asm файлами при сборке и повторить эти действия в cmake вплоть до написания велосипедов с ручным вызовом программ

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта