Ensamblador - ayuda con un principiante

 
Vista:
sin imagen de perfil

ayuda con un principiante

Publicado por jorge (1 intervención) el 23/05/2011 21:22:07
hola a todos
voy al grano estoy empezando a mirarme un poco el ensamblador pero creo que tengo un problema (como no !!!!!) vereis:

pongo lo siguiente (es una simple suma pero no se porque no me cambia los valores en ax y bx)
Entro en el debug a traves del simbolo de sistema con un xp

-a0100
17A5:0100 mov ax,0002
17A5:0103 mov bx,0004
17A5:0106 add ax,bx
17A5:0108 int 20
17A5:010A
-g

Program terminated normally
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=17A5 ES=17A5 SS=17A5 CS=17A5 IP=0100 NV UP EI PL NZ NA PO NC
17A5:0100 B80200 MOV AX,0002

En principio tendría que ver AX=0006 y BX=0004 no?
Pues no, no lo veo y no se porque en teoría me tendría que hacer la suma y verse en el acumulador.
Alguien me puede ayudar? si lo haceis porfavor dar una explicación para novatos jeje saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de A.H.H

ayuda con un principiante

Publicado por A.H.H (1 intervención) el 14/09/2011 19:59:27
Hola yo tambien soy novato, pero en tu pregunta descubri que si en vez de utilizar -g para
correr el codigo, utilizas -t para ir paso a paso por instrucciones se va viendo como se añade el 2 luego el 4 y luego hace la suma.

vete poniendo -t en cada linea para ver los pasos..

Creo que al poner int 20 se sale del dos entonces borra los registros....


-a
0B4E:0100 mov ax,0002
0B4E:0103 mov bx,0004
0B4E:0106 add ax,bx
0B4E:0108 int 20
0B4E:010A
-t

AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B4E ES=0B4E SS=0B4E CS=0B4E IP=0103 NV UP EI PL NZ NA PO NC
0B4E:0103 BB0400 MOV BX,0004
-t

AX=0002 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B4E ES=0B4E SS=0B4E CS=0B4E IP=0106 NV UP EI PL NZ NA PO NC
0B4E:0106 01D8 ADD AX,BX
-t

AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B4E ES=0B4E SS=0B4E CS=0B4E IP=0108 NV UP EI PL NZ NA PE NC
0B4E:0108 CD20 INT 20



salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar