Здравствуйте, todomoku!
При запуске программы светофора, все индикаторы выключены. Устанавливая любой бит, можно включить, нужный сиглан светофора, можно включить один светофор, или вообще устроить день жестянщика.
Смотрите код, реализовано два варианта работы светофоров.
[code lang=asm h=200]#start=Traffic_Lights.exe#
name "traffic2"
red1 equ 1
yellow1 equ 2
green1 equ 4
red2 equ 8
yellow2 equ 16
green2 equ 32
red3 equ 64
yellow3 equ 128
green3 equ 256
red4 equ 512
yellow4 equ 1024
green4 equ 2048
yellowAll equ yellow4+yellow3+yellow2+yellow1
redAll equ red4+red3+red2+red1
start: mov si,offset Variant1
call show
mov si,offset Variant2
call show
jmp start
Show: lodsw
mov cx,ax
@@01: push si
push cx
lodsw
mov cx,ax
@@02: push cx
lodsw
out 4,ax
mov cx, 4Ch
mov dx, 4B40h
mov ah, 86h
int 15h
pop cx
loop @@02
pop cx
pop si
loop @@01
ret
Variant1 dw 5,4
dw red4+green3+red2+green1
dw yellowAll+red2+red4
dw green4+red3+green2+red1
dw yellowAll+red3+red1
Variant2 dw 2,10
dw redAll
dw redAll+yellow1
dw red4+red3+red2+green1
dw red4+red3+red2+yellow2+yellow1
dw red4+red3+red1+green2
dw red4+red3+red1+yellow3+yellow2
dw red4+red2+red1+green3
dw red4+red2+red1+yellow4+yellow3
dw red3+red2+red1+green4
dw red3+red2+red1+yellow4[/code]
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.