« erreur fatale LNK1561 :le point d'entrée doit être défini" erreur de MASM32 dans un programme très simple

StackOverflow https://stackoverflow.com//questions/12717196

Question

Fixé;voici le code corrigé (ne fait rien et plante, mais il s'assemble, c'est le but) :

.686P
.MODEL FLAT
.CODE
_START:
    MOV al, 255
END _START

J'ai également découvert que je devais utiliser le /c commuter avec ml puis relier séparément avec /SUBSYSTEM:CONSOLE.


Je viens de redécouvrir l'assemblage x86 et MASM32 et je me familiarise avec les bases.J'ai donc écrit un programme court et inutile, pour voir si je pouvais assembler n'importe quoi :

.686P
.MODEL FLAT
.CODE
START:
    MOV al, 255
END

L'Iran ml /coff test.asm et j'ai obtenu ce résultat :

Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: test.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

"test.obj"
"/OUT:test.exe"
LINK : fatal error LNK1561: entry point must be defined

J'ai lu en ligne que START était le nom du point d'entrée.Ai-je mal fait cela ou c'est un problème différent ?

Merci d'avance!

Était-ce utile?

La solution

Je n'ai pas MASM, mais généralement le point d'entrée est _start:, pas START:.

Voir cet exemple de programme MASM.

Autres conseils

Cette directive END est utilisée pour définir le point d'entrée :http://msdn.microsoft.com/en-us/library/wxy1fb5k(v=vs.80).aspx

Donc END devrait être END START.L’étiquette du point d’entrée peut être n’importe quel nom d’étiquette valide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top