错误提示为:
inline assembler syntax error in 'opcode'; found 'PROC'
inline assembler syntax error in 'opcode'; found 'ENDP'
就是针对以下代码中的那4行
int41handler2 PROC
int41handler2 ENDP
int41handler PROC
int41handler ENDP这是从网上找来的,不知道要如何改起. 
谢谢各位大侠施救!
__asm 

mov ax,4fh
int 41h
cmp ax, 0x0F386
jz SoftICE_detected
//------------------------------
mov bx, cs
lea dx, int41handler2
xchg dx, es:[41h*4]
xchg bx, es:[41h*4+2]
mov ax,4fh
int 41h
xchg dx, es:[41h*4]
xchg bx, es:[41h*4+2]
cmp ax, 0f386h
jz SoftICE_detectedint41handler2 PROC
iret
int41handler2 ENDP
//------------------------------
xor ax,ax
mov es,ax
mov bx, cs
lea dx, int41handler
xchg dx, es:[41h*4]
xchg bx, es:[41h*4+2]
in al, 40h
xor cx,cx
int 41h
xchg dx, es:[41h*4]
xchg bx, es:[41h*4+2]
cmp cl,al
jnz SoftICE_detectedint41handler PROC
mov cl,al
iret
int41handler ENDP
}

解决方案 »

  1.   

    呵呵,你找的程序在VC中是用不了的。
    PROC  ENDP等关键字在内嵌汇编中不可用
      

  2.   

    用winasm32来编译成obj文件然后再再vc里面用
      

  3.   

    太感谢二位了,这么快就有了答案。
    请问可不可以把这段代码改一改,然后在VC中就可调用呢? 因为我目前没有winasm32,所以按checkyvc6的方法,可能一时做不了。谢......
      

  4.   

    这是16位dos代码,
    而vc生成的是32位windows代码,
    因此,这段代码根本不能在vc里运行
      

  5.   

    这段源码的作者说是用来检测SoftICE的,日期为2001年12月。而目前所见的SoftICE都是WIN平台的.难道说SoftICE有DOS版? 或者根本就不能做检测的事? 望各位指教!
      

  6.   

    VC不支持16位汇编.SOFTICE有DOS版.
      

  7.   

    16位DOS代码在win32中是没法使用的,特别是这种中断处理代码