Ассемблерный код в программе 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). 


Я сделал все, чтобы не учить этот непривлекательный для меня синтаксис. 
А придется   
Вот что я нашел:<a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/gcc/invoking-gcc.html" target="_blank" rel="nofollow">http://www.redhat.com/docs/manuals/enterpr...voking-gcc.html</a> <div> <table cellspacing="0" summary="table28"> <tbody> <tr> <td>Цитата</td> </tr> <tr> <td>-masm=dialectOutput asm instructions using selected dialect. Supported choices are intel or att (the default one). </td> </tr> </tbody> </table> </div>
Это опция, которая заставляет gcc генерировать на выходе ассемблер в другом формате, но она не сможет научить gas понимать его   Кстати, совершенно непонятно, для чего этот ассемблер нужен - получить GPF (и аварийное завершение программы) можно и гораздо более простыми срособами   


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


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