Abril Negro 2008: Taller de ASM

Iniciado por ~~, 13 Abril 2008, 16:52 PM

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

~~

El primer post se ha actualizado. Se a añadido el capitulo "INSTRUCCIONES BÁSICAS DE ASM" Para hacer los ejercicos, ya que aun no se ha explicado por falta de tiempo como se estructura el código en FASM, pegad este código y haced las prácticas donde se indica:

Código (asm) [Seleccionar]
include 'C:\archivos de programa\fasm\include\win32ax.inc'

.code
start:
       
    ; Colocad aqui vuestro codigo

.end start


Para comprobar si os el código hace lo que quereis utilizad el olly y para cualkier duda preguntad ;)

Salu2 E0N




CitarYo tengo una pregunta, no se si lo estoy compilando bien, pero al guardarlo como E0N explica en el primer post, no se me crea el ejecutable.

Te da algún tipo de error al intentar ensamblar el código o ensambla bien y no se te crea el ejecutable?

Eternal Idol

Las mejores herramientas de depuracion para Windows (sic): Debugging Tools for Windows.
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

Xerok1!

No me sale ningún tipo de error, lo guarda como ".Asm", pero el ejecutable no hay forma de crearlo, por lo menos yo no lo consigo... :-\ , tampoco guardandolo con extension ".Exe"..

Bueno haber si lo consigo solucionar!. Un saludo!
[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]

byebye

no tienes mas que darle a ctlr+F9, despues F9 (run).

Dynamique

Este finde me pongo a leerle y guardarlo en la Biblioteca  :xD

Código (php) [Seleccionar]
<?php echo "Hello, I am Dynamique"?>

Xerok1!

#45
Ya lo conseguí!, mi problema era que lo guardaba con formato de texto, porque habia escrito las etiquetas ".code" & "start:"todo junto,es decir (".codestart:"), y no saltaba error...Pero ya esta solucionado, muchas gracias ;) ;)

un saludo ;D
[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]

krackwar

felicitaciones por la segunda parte de tu manual ! , pero pudieras profundisarla un poco mas con mas ejemplos (como lo hiciste con la primera parte)??? ya se que estoi pidiendo ,pero cuando tengas tiempo ,  ya que la verdad entendi al 100% la primera parte i un 70% la segunda,bueno ya se que ese es mi problema i que tu estas haciendo un aporte noo mas i nadie te tiene por que exigir (igual la voi a leer dos veces mas).bueno eso se espera la tercera parte (i la modificacion de la segunda XD) .
s4lu2!
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

~~

Pues no se que mas quieres que profundice, son instruccioes básicas y viene un ejemplillo de cada una. Lo mejor es que hagas una prueba de cada una y mires con un debugger (el olly mismo q es el que yo he explicado o con los que a dicho Eternal Idol) para ver bien como funcionan. Una vez las entiendas intenta hacer los ejercicios y si te salen es q ya las tienes casi dominadas :P

Salu2 y si no entiendes alguna pregunta

elmeister

no consigo comprender en los ejemplos lo de miByte y miDWORD, no se supone que ahi van registros de la CPU? precisamente por el uso de mibyte no consigo hacer una división en ASM a la hora hacer el ejercicio de sacar la media

~~

Es verdad, se me ha olvidado explicar eso. Eso se supone que son variables que hemos tenido que definir nosotros. Les e puesto ese nombre para que se entendiese que eran DWORD's bytes o lo que fueresen. Por ejemplo, para el mov sería asi:

Código (asm) [Seleccionar]
include 'H:\Archivos de programa\FASM\INCLUDE\WIN32AX.inc'

.data
        miByte  db ?
        miWORD  dw ?
        miDWORD dd ?

.code
start:


; ---> Aqui haz las pruebas

mov eax, ebx    ; eax = ebx
mov eax, 1 ; Hace eax = 1
mov eax, miDWORD ; eax = Puntero a una variable
mov eax, [miDWORD]  ; eax = Contenido de la variable
mov [miDWORD], eax ; MiDWORD pasa a valer lo que valga eax

; <--- FIN

invoke ExitProcess, 0

.end start 


Simplemente coloca los ejemplos entre el espacio señalado para ver como funciona
Salu2 ;)