elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Como compilo el hello world del tuto de asm en fasm? -.-
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como compilo el hello world del tuto de asm en fasm? -.-  (Leído 6,167 veces)
Zequez

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Como compilo el hello world del tuto de asm en fasm? -.-
« en: 20 Enero 2010, 16:36 pm »

Bueno, primero, en el tuto deberían advertir que cada compilador de ASM tiene una sintaxis completamente diferente al resto de los compiladores  :¬¬,

Código:
;Programa HOLA MUNDO
DATOS   SEGMENT
       MENSAJE DB "HOLA MUNDO$"
DATOS   ENDS 

PILA   SEGMENT STACK "STACK"
       DB 200 DUP(0)
PILA   ENDS

CODIGO   SEGMENT
       ASSUME CS:CODIGO,DS:DATOS,SS:PILA
PRINCIPAL   PROC
      MOV AX,DATOS
      MOV DS,AX
      MOV AH,9
      MOV DX,OFFSET MENSAJE
      INT 21H
      MOV AH,4CH
      INT 21H
PRINCIPAL   ENDP
CODIGO       ENDS
      END PRINCIPAL


Además, por mas que lo "minimize", por ejemplo, haciendo esto:

Código:
msg db 'Hello, world!$'

start:
      mov ax,msg
      mov ds,ax
      mov ah,9
      mov dx,msg
      int 21h
      mov ah, 4ch
      int 21h

Compila, pero cuando lo abro con ollydebug no me deja abrirlo :S


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #1 en: 20 Enero 2010, 16:48 pm »

Primero son ensambladores, ensamblan. Segundo no se a que tutorial te referis, deja enlace la proxima vez.

¿Cual es la pregunta entonces? El titulo habla de compilar pero al final decis que lo lograste y no podes depurarlo con Ollydbg. Eso no lo vas a poder hacer nunca con un codigo de 16 bits, el Ollydbg es un depurador de 32 bits.

PD. La sintaxis es diferente, pero ni de lejos completamente.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Zequez

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #2 en: 20 Enero 2010, 16:57 pm »

Primero son ensambladores, ensamblan. Segundo no se a que tutorial te referis, deja enlace la proxima vez.

¿Cual es la pregunta entonces? El titulo habla de compilar pero al final decis que lo lograste y no podes depurarlo con Ollydbg. Eso no lo vas a poder hacer nunca con un codigo de 16 bits, el Ollydbg es un depurador de 32 bits.

PD. La sintaxis es diferente, pero ni de lejos completamente.

El tutorial es el que está primero en la sección ASM xD
http://foro.elhacker.net/asm/tutorial_asm_basico_ejemplos-t102701.0.html

Si, bueno, logré compilarlo, pero, por ejemplo, le saqué la parte del stack, y todo lo de los segmentos xD.

Ahora estoy probando con nasm.
Por otro lado, estoy con un OS de 64 bits, se supone que no puedo ejecutar aplicaciones de 16 bits no? :S

Que diferencia de sintaxis hay entre 16 y 32 bits? Y 64? :S Porque no veo nada que haga referencia a la cantidad de bits xD.

El tema de los segmentos... Es distinto en cada ensamblador... Pero... para que sirven? Es decir, al programa no le aportan nada :S
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #3 en: 20 Enero 2010, 17:41 pm »

Windows en 64 bits solo soporta aplicaciones de 64 bits y de 32 bits (son emuladas). Ese codigo es pura y exclusivamente para MS-DOS, podes ejecutarlo en Windows (de 32 bits) pero es emulado.

Te aconsejo conseguir un libro sobre el tema.

PD. En ese tutorial, que es antiguo y se basa en MS-DOS, explica lo que es un segmento.
« Última modificación: 20 Enero 2010, 17:45 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #4 en: 20 Enero 2010, 23:15 pm »

Citar
Que diferencia de sintaxis hay entre 16 y 32 bits? Y 64? :S Porque no veo nada que haga referencia a la cantidad de bits xD.

Nombre/Tamaño de los registros tendria que decirte mucho. yo te recomiendo leer un tutorial basico.
En línea

B14573R

Desconectado Desconectado

Mensajes: 30


Aprende a defenderte para luego saver como atacar


Ver Perfil
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #5 en: 24 Enero 2010, 20:13 pm »

hola Zequez  mira si recien empiesas en esto de la programacion de Asm  te recomiendo que programes en TASM es mejor y facil de utilisar  el Fasm lo utilise pero es mas complejo como consejo  dale con TASM es el mejor y facil de utilisar lla que  no tienes que usar librerias  y  solo tiene dos archivos el compilador y linkiador   ademas lo creas en el block de notas y le das la extensión .asm   para correr el compilador y el linkiador lo ases en la CMD  de windows y listo

te dejo un ejemplo si te sirve de algo

Código
  1. .model small
  2. .code
  3.  
  4. hello        segment
  5.              assume      cs:hello, ds:hello, ss:hello
  6.  
  7.              org   100h
  8.  
  9.  
  10. start:       jmp   index
  11.  
  12.  
  13. .stack
  14.  
  15. mensaje    db  'Hello Word$'
  16.  
  17. index:
  18. mov       ax,hello
  19. mov       ds,ax
  20.  
  21. mov       dx,offset mensaje
  22. mov       ah,09h
  23. int          21h
  24. mov        ah,10h
  25. int           16h
  26. mov        ax,4ch
  27. int           21h
  28.  
  29. hello       ends
  30. end        start



espero averte alludado   y sige en este en este facinante mundo de la programacion  ya que programando en asm controlas no solo software sino tambien hardware   :D

EI: juntando mensajes.

y la diferencia esta en  que los registros de 16byts son asi  
---------------------------------------------------------------------

ah   =  8 bits
ax   = 16 bits
eax =  32 bits
rax = 64 bits
----------------------------------------------------------------------

no se cual es de 64 bytes pero ese es el cuento empiesa programando en 16 bytes y despues que entiendas todo te bas por  32 bytes
espero aberte alludado
« Última modificación: 26 Enero 2010, 02:29 am por B14573R » En línea

SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como compilo el hello world del tuto de asm en fasm? -.-
« Respuesta #6 en: 24 Enero 2010, 21:08 pm »

B14573R: son BITS no BYTES, y en 64 es rax. Usa el boton modificar, no hagas doble posteo.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines