Buenas, estoy iniciandome en esto del ASM y echandole un vistazo a algunos codigos de ejemplo no termino de ver cual sería la forma correcta de iniciar un código de ASM. Me explico, he visto ejemplos asi:
fortmat PE GUI 4.0
entry start
.data
start:
;codigo
Códigos que por el contrario suprimen la linea de "entry start" y al final termina con un ".end etiqueta". Por otra parte, tambien he visto un par de formas diferentes de empezar las secciones del codigo, por ejemplo: ".data" frente a "section '.data' data readable writeable" u otro tipo de sección como "section '.idata' import data readable writeable". Otros codigos tambien que empezaban de esta manera:
386
.model flat, stdcall
option casemap:none
Tambien me surge la duda probando estas cosas es que entre estos dos codigos:
format PE GUI 4.0
include 'win32ax.inc'
.data
_msg db 'Hola',0
.code
main:
invoke MessageBoxA,0,_msg,0,MB_OK
invoke ExitProcess, 0
.end main
format PE GUI 4.0
include 'win32ax.inc'
entry main
.data
_msg db 'Hola',0
.code
main:
invoke MessageBoxA,0,_msg,0,MB_OK
invoke ExitProcess, 0
El primero compila sin problemas sin embargo el segundo no, lo que supongo que estará lo relacionado con lo que dije mas arriba. Aclaro que estoy utilizando FASM (no se si esto influye) en Windows XP de 32bits lo que si supongo que influye en el tipo de código.
Un saludo
Son directivas propias de cada ensamblador, el primero es para FASM el segundo es para MASM32.
Lo que debes hacer para saber lo que significa cada directivas es simplemente leer algun libro o manual del ensamblador.