problema con un bucle en codigo ensamblador
Publicado por ensambler (5 intervenciones) el 23/06/2008 16:28:24
Bueno he tenido un problema con un bucle en codigo ensamblador aqui os dejo el codigo
-A0100
0CC7:0100 JMP 125
0CC7:0102
-E 102 'HOLA' 0A 0D '$'
-A125
0CC7:0125 MOV BX,000A
0CC7:0128 MOV DX,102
0CC7:012B MOV AH,09
0CC7:012D INT 21
0CC7:012F DEC BX
0CC7:0130 JNZ 012D
0CC7:0132 INT 20
0CC7:0134
supuestamente devería funcionar pero no lo hace... lo he hecho mediante el debug de MS-DOS
este codigo tampoco me funciona:
-A0100
0CC7:0100 JMP 125
0CC7:0102
-E 102 'HOLA' 0A 0D '$'
-A125
0CC7:0125 MOV CX,000A
0CC7:0128 MOV DX,0102
0CC7:012B MOV AH,09
0CC7:012D INT 21
0CC7:012F LOOP 012D
0CC7:0131 INT 20
0CC7:0133
hay una linea común que especialmente no entiendo:
0CC7:012B MOV AH,09
creo que es como para elegir lo que imprime int 21 pero si me pudieses aclarar mejor os lo agradeceria
otra cosa que no entiendo es cuando le pones LOOP [loquesea] o JNZ [loquesea] ¿cómo sabe el registro que tiene que comprar? ¿si tiene que ser BX o CX? ¿con LOOP siempre es CX, y con JNZ siempre es BX?
muchas gracias de antemano
-A0100
0CC7:0100 JMP 125
0CC7:0102
-E 102 'HOLA' 0A 0D '$'
-A125
0CC7:0125 MOV BX,000A
0CC7:0128 MOV DX,102
0CC7:012B MOV AH,09
0CC7:012D INT 21
0CC7:012F DEC BX
0CC7:0130 JNZ 012D
0CC7:0132 INT 20
0CC7:0134
supuestamente devería funcionar pero no lo hace... lo he hecho mediante el debug de MS-DOS
este codigo tampoco me funciona:
-A0100
0CC7:0100 JMP 125
0CC7:0102
-E 102 'HOLA' 0A 0D '$'
-A125
0CC7:0125 MOV CX,000A
0CC7:0128 MOV DX,0102
0CC7:012B MOV AH,09
0CC7:012D INT 21
0CC7:012F LOOP 012D
0CC7:0131 INT 20
0CC7:0133
hay una linea común que especialmente no entiendo:
0CC7:012B MOV AH,09
creo que es como para elegir lo que imprime int 21 pero si me pudieses aclarar mejor os lo agradeceria
otra cosa que no entiendo es cuando le pones LOOP [loquesea] o JNZ [loquesea] ¿cómo sabe el registro que tiene que comprar? ¿si tiene que ser BX o CX? ¿con LOOP siempre es CX, y con JNZ siempre es BX?
muchas gracias de antemano
Valora esta pregunta


0