Buenas chicos, tengo una duda.
Estoy leyendo un manual sobre ensamblador, donde hago lo siguiente (Usando debug de ms-dos)
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 ;)
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) ...
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 :)
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 ...
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 ;)
De nadas ::)