Hack x Crack - Comunidad de Seguridad informática

Programación => ASM => Mensaje iniciado por: doommachine en Mayo 15, 2016, 08:06:42 am

Título: Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: doommachine en Mayo 15, 2016, 08:06:42 am
Muy buenas a todos estoy usando asm x86, hice mi primer programa en ensamblador y no funciona, consiste en meter valores en AX y BX y luego sumarlos dentro de  AX.

Estoy usando el "debug" de windows xp para programar,

primero comencé con el comando  "-r"  de "debug" para mostrar todos los registros, AX y BX estan en "0000".
Luego use el comando "-a" para iniciar el ensamblado en "0100".

luego escribí todo el código para sumar y luego interrumpir:

todo esto es hecho en el debug de windows xp

Código: ASM
  1. mov ax,0002 ;coloca el valor 0002 en el registro ax
  2. mov bx,0004 ;coloca el valor 0004 en el registro bx
  3. add ax,bx ;le adiciona al contenido de ax el contenido de bx
  4. int 20 ; provoca la terminación del programa.
  5.  

Luego el comando "-g" para ejecutar el programa, se ejecuta correctamente, pero luego al escribir "-r" para ver los registros, los registros AX y BX siguen en "0000" cuando deberia estar AX en "0006" y BX en "0004", no se porque no funciona la suma o el programa.

Aquí una captura del proceso:
(http://s2.subirimagenes.com/otros/previo/thump_9584324asm.jpg)

¿Alguien tiene idea que porque no muestra los resultados correctos?
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: FlaskBreaker en Mayo 15, 2016, 01:12:17 pm
No sé cómo funciona el comando debug de Windows XP, pero si miras los registros, el IP (Instruction Pointer), apunta a la dirección 0x100, es decir, a la dirección de la instrucción mov ax, 0002 (que aún no se ha ejecutado).
Conclusión, no ha ejecutado el programa.

Tips por si alguno lo arregla/sirve de ayuda:
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: hackmundy en Julio 15, 2016, 07:20:38 am
Yo recien estoy aprendiendo ASM por la universidad recien voy por el add programamos con MIPS32, bueno para sumar hacemos lo siguiente
a=b[5]+c

lw $t0,5($s1)
add $t1,$s1,$s2

en $t1 se almacenara el registro.

saludos
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: edilber en Abril 26, 2017, 02:38:26 am
Que tal amigo, disculpa si respondo fuera de tiempo, pero para clarificar la duda y abrir nuevos motivos para seguir programando en este lenguaje posteo lo que yo considero está el error, cuando ejecutas con -g debes especificar hasta que segmento de memoria debes aplicar la ejecución, en este caso sería -g108, con esto debería mostrarte los cambios en cada registro.

Saludos!!!
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: b10s_0v3rr1d3 en Mayo 11, 2017, 07:40:12 pm
@doommachine: para lo que quieres hacer, tienes que usar el 'p' y veras como lo executa linea por linea ;)

los 0's que pones en los valores no te hacen falta, como en el "a0100" puedes ponerlo como "a100" que es lo mismo.
el int 20 del final no te hace falta tampoco si lo que quieres es hacer pruebas de este tipo, lo que si que para programar en ello no te recomendaria el debug precisamente xD

nos leemos :P
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: alanchoo en Noviembre 19, 2018, 06:18:48 am
Después de usar -a para ensamblar tu código
tienes que poner -r para ver los registros iniciales
Luego, poner puros -t para ejecutar línea por línea

Saludos
Título: Re:Ayuda, No me funciona un programa sencillo de suma de registros
Publicado por: mundonuevo en Marzo 25, 2021, 11:49:32 pm
revisa bien el registro del los ips