Ensamblador - como hacer contador infinito en masm ?

   
Vista:

como hacer contador infinito en masm ?

Publicado por jorge (2 intervenciones) el 21/11/2015 01:12:00
Buenas días, tardes o noches, el problemas que tengo es que mi contador ejemplo del 1 al 20 no imprime en la misma posición, sino que se desplaza, 123456789101112 etc.. cuando en la posición 1 debería mostrar todos los numeros.
soy nuevo en esto el profesor dijo que son pocas lineas de código pero no le creo :(

su contador del profesor mostraba en pantalla como avanzaba su conteo :

000000000000000000000000000000000000000000000000000000001

donde esta el 1 empezó a contar y por eso dice que es infinito porque mientas mas avance a la izquierda mas tiempo se lleva en cambiar el valor.

00000000000000000000000000000000000000000000000000056989

solo quiero saber como hacer lo mismo pero con dos dígitos :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
00            ;comienzo
20            ;fin
este es mi codigo:
 
PAGE 40,132
TITLE CONTADOR
 
STACK SEGMENT PARA STACK 'STACK'
	DB 128 DUP("PILA")
STACK ENDS
 
DATA SEGMENT PARA PUBLIC 'DATA'
	VALOR DW  30H ,0D,"$"
	VALOR1 DB 30H,0d,"$"
	SALTO DB 0AH,0DH,"$"
DATA ENDS
 
CODIGO SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODIGO , SS:STACK, DS:DATA
 
CONTADOR PROC FAR
 
	PUSH DS
	SUB AX,AX
	PUSH AX
 
	MOV AX,SEG DATA
	MOV DS,AX
 
	MOV AH,00H		;LIMPIAR PANTALLA
	MOV AL,03H
	INT 10H
 
	MOV BH,30H
	MOV BL,30H
	MOV SI,0
CICLO1:
	ADD BL,1
	MOV VALOR1[SI],BL
	MOV CL,VALOR1[SI]
	XCHG CH,CL
	MOV VALOR1[SI],CL
	MOV AH,09H
	LEA DX,VALOR1
	INT 21H
	CMP BL,39H
	JE ACARREO
	JMP CICLO1
 
ACARREO:
	MOV SI,0
	ADD BH,1
	MOV VALOR[SI],BX
	MOV CX,VALOR[SI]
	XCHG CH,CL
	MOV VALOR[SI],CX
	MOV AH,09H
	MOV DX,OFFSET VALOR
	INT 21H
	CMP BH,31H
	JE SALIR
	JMP CICLO1
SALIR:
 
ret
CONTADOR ENDP
 
CODIGO ENDS
END
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

como hacer contador infinito en masm ?

Publicado por Requeteprogramador (26 intervenciones) el 21/11/2015 09:38:01
La función 9 de la int 21h saca por pantalla y pone al cursor al final, con lo que lo siguiente que saques lo pondrá a la derecha. Tienes que posicionar el cursor donde sea antes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

como hacer contador infinito en masm ?

Publicado por Jorge (2 intervenciones) el 21/11/2015 14:41:06
Que instrucción es? Había usado un a anterior mente pero solo igual no me dejaba en el lugar que yo le decía. Recuerdo que use 02h que usa las posiciones dh filas y dl columnas pero nada, si sabes que instrucción si respeta la posición seria de gran ayuda
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

como hacer contador infinito en masm ?

Publicado por Requeteprogramador (26 intervenciones) el 21/11/2015 21:06:24
https://es.wikipedia.org/wiki/Int_10h

Si estás usando la que es y no te funciona es que estás usándola mal.
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