Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (asm) [Seleccionar]
mov ax, 0002
mov bx, 0004
add ax, bx
int 20


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

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  ::)