Вывод ассемблеровского кода в с++

276
07 декабря 2017, 01:02

Добрый день. Столкнулся с проблемой компиляции кода 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
READ ALSO
Удаление и вывод самого короткого слова

Удаление и вывод самого короткого слова

Как вместо вывода самого короткого слова произвести его удаление из in и вывести остальное в out?

215
Оператор сравнения == в С++

Оператор сравнения == в С++

Как реализовать сравнение двух переменных, чтобы получить значение типа bool, говорящее, равны они или нетЧто надо изменять? Написал вроде...

229
Аргумент функции в виде объекта класса

Аргумент функции в виде объекта класса

У меня есть класс для значений давленийВ приведенном ниже коде вылезает ошибка:

290