我正在使用VS2008 C ++(没有libs)。这是我的代码:
__asm
{
jmp start
msg:
db "http://www.stackoverflow.com"
dtfld:
db "00/00/0000"
tmfld:
db "00:00:00"
start:
我收到以下错误:
错误1错误C2400:'opcode'中的内联汇编语法错误;发现'坏令牌' 错误2错误C2400:'操作码'中的内联汇编语法错误;发现'坏令牌' 错误3错误C2400:'操作码'中的内联汇编语法错误;发现'坏令牌'
为什么会这样?
答案 0 :(得分:4)
引自Data Directives and Operators in Inline Assembly (Microsoft):
虽然__asm块可以引用C或C ++数据类型和对象,但它无法使用MASM指令或运算符定义数据对象。具体而言,您不能使用定义指令DB,DW,DD,DQ,DT和DF,或运算符DUP或THIS。 MASM结构和记录也不可用。内联汇编程序不接受指令STRUC,RECORD,WIDTH或MASK。