Ensamblador - Ejecutar un ciclo solo 5 veces antes de terminar

 
Vista:

Ejecutar un ciclo solo 5 veces antes de terminar

Publicado por Ricardo Zapata (1 intervención) el 13/06/2013 06:34:21
Necesito que este ciclo corra solo 5 veces antes de terminar, o sea, que muestre los 6 estados de los semaforos solo cinco veces sin USAR la instruccion LOOP.

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
JMP Start   		;instrucción para brincar sobre la data e ir a la primera instrucción
			;ejecutable. Ocupa dos bytes de memoria.
 
	DB 84 		;10000100	Primera etapa del semaforo segun las instrucciones
	DB 88		;10001000	Segunda etapa segun ilustrada en las instrucciones
	DB 90		;10010000	Tercera etapa
	DB 30 		;00110000	Cuarta etapa
	DB 50		;01010000	Quinta etapa
	DB 90		;10010000	Sexta etapa
 
Start:
	mov cl,02	;02 es la primera localización de memoria
			;en donde tenemos data porque las primeras
			;dos están ocupadas por la instrucción
			;"JMP Start"
Again:
	mov al,[cl]	;Utilizando CL como índice accedemos al
			;primer valor de dato (FC) almacenado en
			;memoria.
	out 01		;Enviamos el valor de AL al puerto 01 que
			;corresponde al controlador de semáforos.
	inc cl		;incrementamos cl para apuntar al próximo
			;valor en memoria
	cmp cl,8	;cotejamos si CL = 8. Si no ha llegado a
	jnz again	;8 continuamos para enviar el próximo
;valor al controlador del semáforo. Se elige 8 porque son 6 ;repeticiones y las primeras direcciones ya estan usadas.
	jmp start	;Si CL llegó a 8 entonces brincamos al
			;comienzo del programa para empezar
			;nuevamente la secuencia
	END		;Termina el programa
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