Autor
|
Tema: Como compilo el hello world del tuto de asm en fasm? -.- (Leído 6,192 veces)
|
Zequez
Desconectado
Mensajes: 73
|
Bueno, primero, en el tuto deberían advertir que cada compilador de ASM tiene una sintaxis completamente diferente al resto de los compiladores , ;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: 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
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 73
|
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.htmlSi, 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
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 698
|
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
Mensajes: 30
Aprende a defenderte para luego saver como atacar
|
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 .model small .code hello segment assume cs:hello, ds:hello, ss:hello org 100h start: jmp index .stack mensaje db 'Hello Word$' index: mov ax,hello mov ds,ax mov dx,offset mensaje mov ah,09h int 21h mov ah,10h int 16h mov ax,4ch int 21h hello ends 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 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
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
|
|
|
|
|