Проблема новичка с встроенной сборкой

Я использую VS2008 С++ (без библиотек). Это мой код:

    __asm
    {
    jmp start
msg:
          db "http://www.stackoverflow.com"
dtfld:
          db "00/00/0000"
tmfld:
          db "00:00:00"
start:

Я получаю следующие ошибки:

Ошибка 1 ошибка C2400: синтаксическая ошибка встроенного ассемблера в «коде операции»; найден "неверный токен"
Ошибка 2, ошибка C2400: синтаксическая ошибка встроенного ассемблера в "коде операции"; найден «неверный токен»
Ошибка 3, ошибка C2400: синтаксическая ошибка встроенного ассемблера в «коде операции»; нашел «плохой токен»

Почему это?


person Behrooz    schedule 05.02.2010    source источник
comment
почему db недопустимый токен?   -  person Behrooz    schedule 05.02.2010


Ответы (1)


Цитата из Директивы и операторы данных во встроенном ассемблере (Microsoft):

Хотя блок __asm ​​может ссылаться на типы данных и объекты C или C++, он не может определять объекты данных с помощью директив или операторов MASM. В частности, вы не можете использовать директивы определения DB, DW, DD, DQ, DT и DF или операторы DUP или THIS. Структуры и записи MASM также недоступны. Встроенный ассемблер не принимает директивы STRUC, RECORD, WIDTH или MASK.

person AndiDog    schedule 05.02.2010
comment
Но вы должны иметь возможность ссылаться на строковые константы, определенные в реальном C++, так что в этом случае вы не много потеряете. - person Steven Sudit; 05.02.2010