我正试图为我正在开发的操作系统编写一个引导加载程序。
我在第一行收到语法错误。
这是我的汇编代码:
.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:语法错误:。
据我所知,这条线不应该成为问题。
感谢您的帮助:)
答案 0 :(得分:3)
正如@Michael Petch在评论中建议的那样,使用较旧版本的MASM(在我的情况下为6.15),并且它有效。
请注意,如果您在项目中使用C / CPP代码并打算将它们与程序集文件链接(就像我一样),您还需要降级C编译器。就我而言,我将它从CL(Microsoft C / C ++ Optimizing Compiler Version 19.10.25017)更改为dmc。