Ассемблерный код в программе c++

Всем привет!Проблемка: нужно вставить asm-код в программу на cppTASM программа:
    .model small    .stack 100h    .datamessage    db    'Hello World!', '$'    .codemain_proc       proc far    mov ax,@data    mov ds,ax    mov ah,09h    lea dx,message    int 21h                           mov ax,4C00h    int 21h    retmain_proc endp    end main_proc
Нужно выполнить то же самое в программе на C++:
int main(){       char *message = "Hello World!$";       asm {                 mov ah,09h                 lea dx,message                 int 21h       }      return 0;}
Программа не компилиться, куча ошибок. Слышал, что gcc не дружит с таким способом вставки asm-кода. Но как это сделать?
5 ответов

Учи синтаксис AT&Tgcc использует компилятор ассемблера gasПервое что выдал гугл:http://sig9.com/articles/att-syntax http://ru.wikipedia.org/wiki/AT&T_%D1%...%81%D0%B8%D1%81 http://www.ibiblio.org/gferg/ldp/GCC-Inlin...mbly-HOWTO.htmlА теперь насчет самого ассемблерного кода. Если программа будет собираться под линуксом, то она работать не будет, там совершенно другие прерывания.Кстати вот еще что. У gcc есть опция -masm-compat, но нигде нет информации о том как с ней работать.


Я сделал все, чтобы не учить этот непривлекательный для меня синтаксис. Вот что я нашел:http://www.redhat.com/docs/manuals/enterpr...voking-gcc.html
-masm=dialectOutput asm instructions using selected dialect. Supported choices are intel or att (the default one). 


Я сделал все, чтобы не учить этот непривлекательный для меня синтаксис. 
А придется   
Вот что я нашел:http://www.redhat.com/docs/manuals/enterpr...voking-gcc.html
Цитата
-masm=dialectOutput asm instructions using selected dialect. Supported choices are intel or att (the default one). 
Это опция, которая заставляет gcc генерировать на выходе ассемблер в другом формате, но она не сможет научить gas понимать его   Кстати, совершенно непонятно, для чего этот ассемблер нужен - получить GPF (и аварийное завершение программы) можно и гораздо более простыми срособами   


fullnull, код на асме должен быть для целевой платформы. А синтаксис - для конкретного компилятора.


можно скомпилить отдельные части ассемблером, что понимает синтаксис intel и прилинковать эту функциональность при линковке частей из cpp ... незнаю как это сделать с gcc, но уверен что такое возможно.