错误A2008:语法错误:

时间:2017-10-06 18:04:23

标签: assembly masm

我正试图为我正在开发的操作系统编写一个引导加载程序。

我在第一行收到语法错误。

这是我的汇编代码:

.286 ; CPU Type
.model TINY  ; memory of model
;---------------------- EXTERNS -----------------------------
extrn               _BootMain:near     ; prototype of C func
;------------------------------------------------------------
;------------------------------------------------------------   
.code 
org             07c00h         ; for BootSector
_main:
                jmp short _start       ; go to main
                nop

;----------------------- CODE SEGMENT -----------------------
_start: 
        cli
        mov ax,cs               ; Setup segment registers
        mov ds,ax               ; Make DS correct
        mov es,ax               ; Make ES correct
        mov ss,ax               ; Make SS correct        
        mov bp,7c00h
        mov sp,7c00h           ; Setup a stack
        sti
                                ; start the program 
        call           _BootMain
        ret
        END _start
        END _main ; End of program

这是我的编译热线:

"*location*\14.10.25017\bin\HostX86\x86\ML.EXE"  /c StartPoint.asm

我得到的错误:

  

StartPoint.asm(1):错误A2008:语法错误:。

据我所知,这条线不应该成为问题。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

正如@Michael Petch在评论中建议的那样,使用较旧版本的MASM(在我的情况下为6.15),并且它有效。

请注意,如果您在项目中使用C / CPP代码并打算将它们与程序集文件链接(就像我一样),您还需要降级C编译器。就我而言,我将它从CL(Microsoft C / C ++ Optimizing Compiler Version 19.10.25017)更改为dmc