Ensamblador - ayuda: necesito imprimir el valor del registro cx

 
Vista:

ayuda: necesito imprimir el valor del registro cx

Publicado por sergio (1 intervención) el 19/03/2007 20:10:21
hola que tal, espero que me puedan ayudar, estoy empezando a programar en ensamblador, y estoy usando el tasm.exe y tlink.exe.
Bueno me pidieron que hiciera un programa que le asignara un valor de 10 al registro CX, luego que lo decrementara hasta llegar a 0 y que fuera mostrando los valores de CX(es decir 10, 9, 8, ...).
Hasta ahora lo unico que he podido hacer es desplegar un caracter 10 veces, este es el codigo:

.model small
.stack
.code
.startup
Start: Jmp Main_Program
Main_Program:
Mov Cx,10
L1:
Dec CX

mov ah,02h
mov dl,'a'
Int 21h

Jnz L1
Exit_Program:
.exit
END Start

alguien me podria decir como modificarlo para que despliegue el valor del registro CX.
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

RE:ayuda: necesito imprimir el valor del registro

Publicado por Adrb (3 intervenciones) el 20/03/2007 08:36:20
Aquí te mando una modificación rápida para enseñar el valos de CX, desde 9 hasta 1, así que creo ya lo tienes resuelto. La instrucción loop se encarga de decrementar cx, así que te ahorras código. El 30h es debido a que los código ASCII de los números se allan a partir del valor 30h (este es el cero), el 1 es el 31h ASCII y así sucesivamente. Estúdiate el ejemplo y busca más información sobre lo que te dije.

Bytes

.model small
.stack
.code
.startup
Start: Jmp Main_Program
Main_Program:
Mov Cx,9
L1:

mov ah,02h
mov dl,cl
add dl,30h
Int 21h

loop L1

Exit_Program:
.exit
END Start
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

RE:ayuda: necesito imprimir el valor del registro

Publicado por RAH_555 (3 intervenciones) el 01/11/2007 03:42:54
para hacer este prog puedes utilizar esto:

mov cl,0ah
otro: mov dl,cl
cmp dl,00h
jne salir
cmp dl,0ah
jge imp_10
add dl,30h
mov ah,02h
int 21h
dec cl
jmp otro
imp 10h: mov dl,31h
mov ah,02
int 21h
mov dl,30h
int 21h
dec cl
jmp otro
salir: ret

en este prog lo que hacemos es guardar o mover oah que es 10 entonces lo comparamos con cero si no es igual lo imprime si es igual a cero lo saca del prog. espero y sirva
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

RE:ayuda: necesito imprimir el valor del registro

Publicado por simon (2 intervenciones) el 06/07/2009 00:48:14
Yo anduve estudiando algo de ensamblador y todavía no caso mucho.
Pero (espero no equivocarme) creo que tu problema esta cuando pones jnz L1, y lo que tenes que poner es jnz CX que es al que estas decrementando
Espero no haberme confundido y si lo hice por favor corríjanme y explíquenme
A por cierto, estoy como loco buscando el tesm.exe y el tlink.exe y no lo encuentro, porfavor me lo podrías facilitar ya que lo tenes (una pregunta ¿se usa con un diskette de inicio o algo haci o se ejecuta desde el Windows? )Gracias y suerte
Saludos
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

RE:ayuda: necesito imprimir el valor del registro

Publicado por simon (2 intervenciones) el 06/07/2009 00:50:45
Yo anduve estudiando algo de ensamblador y todavía no caso mucho.
Pero (espero no equivocarme) creo que tu problema esta cuando pones jnz L1, y lo que tenes que poner es jnz CX que es al que estas decrementando
Espero no haberme confundido y si lo hice por favor corríjanme y explíquenme
A por cierto, estoy como loco buscando el tesm.exe y el tlink.exe y no lo encuentro, porfavor me lo podrías facilitar ya que lo tenes (una pregunta ¿se usa con un diskette de inicio o algo haci o se ejecuta desde el Windows? )Gracias y suerte
Saludos
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