開発中のOS用のブートローダを作成しようとしています。エラーA2008:構文エラー:
最初の行に構文エラーが表示されます。ここで
は私のアセンブリコードです:
"*location*\14.10.25017\bin\HostX86\x86\ML.EXE" /c StartPoint.asm
私は取得していますエラー:
StartPoint.asm(1): error A2008: syntax error : .
を私の知る限りでは、この
.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
ここに私のコンパイル行です問題はないはずです。助けのための
感謝:)
'.286'は[msdn](https://msdn.microsoft.com/en-us/library/8t163bt0.aspx)による有効な指令ではありません。ただそれを削除します。 – Jester
古いバージョンのMASMまたはTASMでは、16ビットコードと16ビットリンカーをアセンブルすることができます。また、32ビットコードを呼び出そうとしていないことを願っています。 –
また、NASMを使用しても、AFAIKという16ビットコードを組み立てても問題ありません。 (ただし、intel-syntaxの別の変形を使用しています。https://stackoverflow.com/tags/intel-syntax/infoを参照してください。 –