Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: criskapunk en 15 Agosto 2010, 02:59 am



Título: Duda debug - MS-DOS
Publicado por: criskapunk en 15 Agosto 2010, 02:59 am
Buenas chicos, tengo una duda.

Estoy leyendo un manual sobre ensamblador, donde hago lo siguiente (Usando debug de ms-dos)

Código
  1. mov ax, 0002
  2. mov bx, 0004
  3. add ax, bx
  4. int 20

El problema lo tengo cuando uso el comando r para ver el valor de los registros, que me devuelve:

Código:
AX=0000 BX=0000

Cuando (segun entiendo) deberia devolverme ax=0006 bx=0004.
El mismo problema tengo al ejecutar rax o rbx para ver el valor de los registros por separado. Sin embargo, si utilizo el comando g (Junto con la direccion de memoria donde esta int 20), puedo ver el valor correctamente.

Que estoy haciendo mal?

Un saludo y gracias ;)


Título: Re: Duda debug - MS-DOS
Publicado por: Eternal Idol en 15 Agosto 2010, 12:13 pm
AX sera 2 y BX 4 DESPUES de ejecutar las 2 primeras instrucciones y ANTES de ejecutar la tercera.

Usa p o t para ejecutar instruccion por instruccion y verlo.

PD. Si ejecutas hasta int 20 AX tiene que ser 6 (2 + 4) ...


Título: Re: Duda debug - MS-DOS
Publicado por: criskapunk en 15 Agosto 2010, 16:18 pm
Cuando utilizo el comando t o g (Este ultimo con la direccion de memoria donde esta int 20) puedo ver correctamente los valores.

El problema esta cuando (Segun el libro) utilizo el comando g para ejecutar el programa. Al parecer, despues de ejecutarlo y usar r para ver el valor de los registros, estos deberian mostrarme AX=0006 BX=0004, pero ambos estan en 0.

Gracias por la ayuda Eternal, y perdon por estas preguntas :)


Título: Re: Duda debug - MS-DOS
Publicado por: Eternal Idol en 15 Agosto 2010, 18:28 pm
Con g solo se ejecuta el programa completo, al ejecutar la instruccion ADD AX sera 6, despues ejecutar la interrupcion 20 puede cambiar los valores de los registros tambien ...


Título: Re: Duda debug - MS-DOS
Publicado por: criskapunk en 15 Agosto 2010, 18:39 pm
Ah ok! Esa era mi duda.

Entonces despues de ejecutar la interrupcion, los valores de los registros pueden volver a cambiar, devolviendo otro resultado.

Muchas gracias ;)


Título: Re: Duda debug - MS-DOS
Publicado por: Eternal Idol en 15 Agosto 2010, 20:50 pm
De nadas  ::)