Академический Документы
Профессиональный Документы
Культура Документы
Objetivo.............................................................................................................. 2
Desarrollo del Programa...................................................................................... 2
Antes de Programar......................................................................................... 2
Programacin................................................................................................... 3
Compilacin..................................................................................................... 5
Ejemplo............................................................................................................... 7
Conclusiones....................................................................................................... 8
Recomendaciones............................................................................................... 8
Objetivo
Realizar un programa en lenguaje ensamblador que permita simular el
funcionamiento de la herramienta virtual device Traffic Lights utilizando
EMU8086.
Programacin
Para explicar el programa se presentara primeramente el diagrama de bloques
general (Figura 3) y se explicara cada bloque, este diagrama de bloques esta
realizado en base a la programacin realizada para dicho programa.
Antes de los bloques se realiz un arreglo para que sea ms visual, en el cual
enviaremos al puerto de salida 199 (LCD) el cero para saber que empieza
desde cero el programa.
Bloque de Pausa
El presente bloque explica cmo se gener la pausa, el nmero ingresado en C
despus de enviar el dato al puerto de salida ser un contador el cual ira
disminuyendo, el tiempo que tarde en llegar a cero ser el tiempo de pausa para
que el usuario ingrese otra opcin. Dentro de esta subrutina primero ejecutara
el no operation.
nop
Luego se ejecutara la instruccin de disminucin de C y salto a Pausa.
loop (Pausa)
Finalmente cuando C sea cero entonces se saltara nuevamente a la subrutina
ingreso.
jmp ingreso
Compilacin
Una vez finalizado el programa se debe guardar y luego emular ya que aqu
compila y ejecuta si no hay errores. Y para esto daremos en el botn emualte.
Luego debemos abrir los puertos por donde se ingresaran los datos y por
donde saldrn los datos as que en la ventana que muestra los registros damos
click en la barra de herramientas en la opcin virtual devices y escogemos las
opciones Traffic Ligths y Simple. En Traffic Lights se observara el movimiento
de los autos (Puerto de Salida) y en Simple se opcion deseado.
Ejemplo
Se Ingresa por el puerto Simple la opcin 1 para mover los dos autos de forma
vertical.
Conclusiones
Se concluye que en la mayora de operaciones que se realiza, el un
operando es el acumulador.
A pesar de que las operaciones se puede ver el signo en las banderas
tambin se puede representar en los registros.
Los saltos pueden ser usados para validaciones de nmeros que se
desee.
La instruccin CMP es til al comprar restando sin guardar el resultado
en el acumulador.
Se puede visualizar en los puertos de salida como si fueran dispositivos
externos conectados.
A diferencia con el IDE z80 aqu se puede realizar resta entre registro lo
que nos puede ahorrar pasos.
Tienen ms instrucciones para facilitar la programacin en comparacin
al Z80.
Si se necesita hacer comparaciones exactas para pocos nmero se
puede comparar con cada uno caso contrario se debe barrer un rango
con los saltos.
Se pueden mover los autos mientras se utilice las combinaciones
correctas.
Recomendaciones
Se recomienda usar banderas para realizar los saltos a otras funciones.
Si se desea realizar un programa en un orden especfico se recomienda
retornar al final de las subrutinas y realizar las llamadas al inicio del
programa.
Se recomienda tener en cuenta la estructura de programacin por
ejemplo, las instrucciones no van desde el inicio de la lnea, sino
despus de un espacio, mientras que los nombres de las subrutinas si se
debe escribir desde el inicio de la lnea donde se escriba.
Se recomienda guardar los datos ingresados por puerto en registros
auxiliares a fin de que no se pierdan los datos que se ingres.
Se recomienda validar, esto debido a que al simular un ascensor este
tendr un nmero finito de pisos.
Anexos
ingreso:
in ax,110 ;Ingresa en A el valor
;del puerto 110
jmp valid ;Salta a subrutina valid
horizontal:
mov ax, 0861H ;Guarda 0861 en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx,015EH ;Guarda el numero 015E en C
jmp Pausa
vertical:
mov ax, 030CH ;Guarda 030C en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx,015EH ;Guarda el numero 015E en C
jmp Pausa
hor1:
mov ax, 0261H ;Guarda 0261 en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx,015EH ;Guarda el numero 015E en C
jmp Pausa ;Salta a Pausa
hor2:
mov ax, 0849H ;Guarda 0849 en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx, 015EH ;Guarda el numero 015E en C
jmp Pausa ;Salta a Pausa
ver1:
mov ax, 0309H ;Guarda 0309 en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx, 015EH ;Guarda el numero 015E en C
jmp Pausa ;Salta a Pausa
ver2:
mov ax, 024CH ;Guarda 024C en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx, 015EH ;Guarda el numero 015E en C
jmp Pausa ;Salta a Pausa
parado:
mov ax, 0249H ;Guarda 0249 en A
nop
out 4,ax ;Envia al puerto 4 el valor de A
nop
mov cx, 015EH ;Guarda el numero 015E en C
jmp Pausa ;Salta a Pausa
hlt