J'essaie d'écrire un chargeur de démarrage pour un système d'exploitation que je développe.erreur A2008: erreur de syntaxe:
Je reçois une erreur de syntaxe sur la première ligne.
Voici mon code assembleur:
.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
Voilà ma ligne de compilation:
"*location*\14.10.25017\bin\HostX86\x86\ML.EXE" /c StartPoint.asm
L'erreur que je reçois:
StartPoint.asm(1): error A2008: syntax error : .
Pour autant que je sache, ce ligne ne devrait pas être un problème.
Merci pour l'aide :)
'.286' n'est pas une directive valide selon [msdn] (https://msdn.microsoft.com/en-us/library/8t163bt0.aspx). Il suffit de le supprimer. – Jester
Vous pouvez envisager une ancienne version de MASM ou TASM assemble le code 16 bits et l'éditeur de liens 16 bits. J'espère aussi que vous n'essayez pas d'appeler du code 32 bits. –
Ou utilisez NASM, il assemble encore bien le code 16 bits, AFAIK. (Mais utilise une variante différente de la syntaxe intel, voir https://stackoverflow.com/tags/intel-syntax/info.) –