Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Caster en 7 Septiembre 2014, 22:20 pm



Título: Como empezar códgio en ASM
Publicado por: Caster en 7 Septiembre 2014, 22:20 pm
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
  1. fortmat PE GUI 4.0
  2. entry start
  3. .data
  4. start:
  5.        ;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
  1. 386
  2. .model flat, stdcall
  3. option casemap:none

Tambien me surge la duda probando estas cosas es que entre estos dos codigos:
Código
  1. format PE GUI 4.0
  2. include 'win32ax.inc'
  3.  
  4. .data
  5. _msg db 'Hola',0
  6.  
  7. .code
  8. main:
  9.        invoke MessageBoxA,0,_msg,0,MB_OK
  10.        invoke ExitProcess, 0
  11.  
  12. .end main  

Código
  1. format PE GUI 4.0
  2. include 'win32ax.inc'
  3. entry main
  4. .data
  5. _msg db 'Hola',0
  6.  
  7. .code
  8. main:
  9.        invoke MessageBoxA,0,_msg,0,MB_OK
  10.        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


Título: Re: Como empezar códgio en ASM
Publicado por: x64core en 7 Septiembre 2014, 23:10 pm
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.