¿Escribir código ensamblador para el sistema de control de semáforo usando 8086?
```asamblea
; 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 eliminar mensajes con un contestador automático completo Uniden
- ·GE Responder a llegar Machine
- ·Puede ahorrar Verizon mensajes de voz en un CD
- ·¿Quién inventó Answerscom y cuándo?
- ·Cómo comprar un contestador automático
- ·Cómo acceder a Comcast Digital Voice Mail From My Teléfono
- ·¿Un teléfono usaba código Morse?
- ·¿Cuántas personas hay en la computadora en este momento?
- Cómo dar formato a una tarjeta SD para un teléfono celular
- Cómo comprar un Estado - of-the -Art Sound System
- Cómo conseguir iPhone Firmware De un Archivo Zip
- Cómo obtener mi BlackBerry 8330 Para vincular con un BlackBerry 8830
- Cómo sincronizar el Calendario Yahoo con un dispositivo móvil
- Cómo conseguir fotos Off de la Internet en el teléfono