Como empezar códgio en ASM

Iniciado por Caster, 7 Septiembre 2014, 22:20 PM

0 Miembros y 1 Visitante están viendo este tema.

Caster

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:

Código (asm) [Seleccionar]
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:
Código (asm) [Seleccionar]
386
.model flat, stdcall
option casemap:none


Tambien me surge la duda probando estas cosas es que entre estos dos codigos:
Código (asm) [Seleccionar]
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 


Código (asm) [Seleccionar]
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

x64core

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.