¿Escribir código ensamblador para el sistema de control de semáforo usando 8086?
; Definir direcciones de memoria para el control de semáforos.
TL_RED ecuación 00H
TL_YELLOW ecuación 01H
TL_GREEN ecuación 02H
TL_CONTROL ecuación 03H
; Definir puertos de E/S para el control de semáforos
OUTPUT_PORT ecuación 04H
; Definir valores de retraso
DELAY_TIME ecuación 10000
organización 100H
; El programa principal comienza aquí.
principal:
mov al, TL_RED; Inicializar semáforo a rojo
mov [TL_CONTROL], al
bucle jmp; Saltar al bucle
bucle:
mov al, [TL_CONTROL]; Leer el estado actual del semáforo
cmp al, TL_RED; Comprobar si el semáforo está en rojo
je rojo; Si es rojo, salta al estado rojo.
cmp al, TL_YELLOW; Comprobar si el semáforo está en amarillo
je amarillo; Si es amarillo, salta al estado amarillo.
cmp al, TL_GREEN; Comprobar si el semáforo está en verde
je verde; Si es verde, salta al estado verde
rojo:
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz roja
fuera al, 01H; Enciende la luz roja
retraso de llamada; Retraso de DELAY_TIME milisegundos
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz roja
fuera todo, 00H; Apaga la luz roja
mov al, TL_YELLOW; Establecer el estado del siguiente semáforo en amarillo
mov [TL_CONTROL], al
bucle jmp; Saltar al bucle
amarillo:
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz amarilla
fuera al, 01H; Enciende la luz amarilla
retraso de llamada; Retraso de DELAY_TIME milisegundos
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz amarilla
fuera todo, 00H; Apagar la luz amarilla
mov al, TL_GREEN; Establecer el estado del siguiente semáforo en verde
mov [TL_CONTROL], al
bucle jmp; Saltar al bucle
verde:
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz verde
fuera al, 01H; Enciende la luz verde
retraso de llamada; Retraso de DELAY_TIME milisegundos
móvil, OUTPUT_PORT; Seleccione el puerto de salida para luz verde
fuera todo, 00H; Apaga la luz verde
mov al, TL_RED; Establecer el estado del siguiente semáforo en rojo
mov [TL_CONTROL], al
bucle jmp; Saltar al bucle
demora:
movimiento cx, DELAY_TIME; Inicializar contador por retraso
xor dx, dx; Borrar registro dx
bucle_retardo:
bucle retardo_loop; Bucle hasta que el contador llegue a cero
retirado
- ·¿Cómo responde a la pregunta:están mejor supervisados?
- ·Cómo utilizar un contestador automático con fax
- ·¿Cómo respondes las preguntas en este sitio?
- ·¿Cómo se comunica cara a cara con los clientes?
- ·¿Es una línea TI la forma más lenta pero más barata de conexión a Internet?
- ·¿Alguien puede responder una pregunta en Answerscom?
- ·Identifique tres preguntas que usted esperaría que un experto en el área funcional de Contratación le ayudara a responder.
- ·¿Hay algún contestador automático y unidades telefónicas a las que se pueda acceder de forma remota?
- Puede usted Enganche a Mono Amp a una salida de auriculares estéreo
- Cómo quitar la tarjeta SIM de la VX8500
- Cómo reiniciar una computadora Mac
- ¿Cuáles son los nombres de las empresas que practican la integración vertical hacia adelante?
- ¿Puedes cambiar una Blackberry móvil Boost a una PC Metro?
- Cómo Grabador DVR Sin publicidad