Добрый день. Столкнулся с проблемой компиляции кода asm в с++. Есть переменная asmCode - sting. А в ней, собственно, содержится код asm. Пример кода будет в конце вопроса. А вопрос заключается в следующем: если я вывожу, допустим, cout << asmCode; - мне выводит не скомпилированный код asm. Если я пытаюсь вывести _asm(asmCode); - мне бьёт либо
Ошибка C2400 синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "newline".
Либо
Ошибка C2400 синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "("
Дело в том, что код, который содержится в gencode автоматически создаётся в зависимости от содержимого определённого файла(своего рода компилятор), и просто вписать часть кода в _asm вручную не получится. В проекте, который должен компилировать asm код включен masm. Каким способом можно вывести результат asm кода из asmCode в консоль? Если нужны будут какие-то коды, предоставлю(ибо, мне кажется, вопрос не нуждается в предоставлении кода(учитывая, что он состоит из 30 файлов). Пример кода asm, содержащийся в asmCode(извиняюсь за корявость, не получилось его красивым сделать):
.586
.model flat, stdcall
includelib kernel32.lib
includelib libucrt.lib
includelib StatLibC.lib
ExitProcess PROTO : DWORD
SetConsoleTitleA PROTO :DWORD
GetStdHandle PROTO : DWORD
writei PROTO : SDWORD
writes PROTO : DWORD
strl PROTO : DWORD
ipow PROTO : DWORD, : DWORD
sum PROTO : DWORD, : DWORD
.stack 4096
.data
.const
csname db 'BNI-2016', 0
Overflow db 'ERROR overflow', 0
DIV_NULL db 'ERROR DBN', 0
newline db '0',0
L0 SDWORD 5
L1 SDWORD 0
.stack 4096
.code
main PROC
push offset csname
call SetConsoleTitleA
push L0
call writei
jmp EXIT
EXIT_div_on_NULL:
push offset DIV_NULL
call writes
push - 1
call ExitProcess
EXIT_overflow:
push offset Overflow
call writes
push - 2
call ExitProcess
EXIT:
push L1
call ExitProcess
main ENDP
end main
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники