Могу ли я использовать asm-функцию со строковой переменной c вместо строкового литерала в качестве аргумента?

Я сделал что-то вроде этого:

char command [] = "Некоторый ассемблерный код";

asm изменчивая (команда);

Это не сработало. В частности, я получаю следующую ошибку: Expected string literal before command.

Итак, могу ли я использовать строковые литералы только со встроенной сборкой C? Я действительно хочу иметь возможность использовать строковые переменные, как указано выше. Как я могу добиться этого эффекта?


person AnkurVj    schedule 28.09.2011    source источник
comment
Запишите текст в файл и system() ассемблер с этим файлом.   -  person pmg    schedule 28.09.2011
comment
Также связано: встроенный ассемблер C/C++ с инструкциями в строковых переменных для версии синтаксиса MSVC того же вопроса (с тем же ответом )   -  person Peter Cordes    schedule 11.07.2021


Ответы (1)


Насколько я знаю, фрагмент кода asm встраивается на этапе компиляции, а не во время выполнения. Это означает, что вы не можете делать то, что делаете.

Как предложил pmg, вы можете сделать это, вызвав внешние команды, но это будет означать, что пользователю нужно будет установить все инструменты.

person mateusz.fiolka    schedule 28.09.2011