Я нахожусь в борьбе 3 петли в сборке.
Первый цикл должен работать в течение 10 секунд, затем переходить во второй цикл, который должен выполняться в течение 2 секунд. Третий должен работать еще 10 секунд.Как контролировать петли задержки в сборе
Основная идея - создать светофор. Каждый светодиод, подключенный к параллельному порту, должен включать другой период времени с помощью TASM.
Красный: 10 сек.
Красный & оранжевый: 2 сек
Зеленый: 10 сек
, а затем вернуться к красному снова .. и так далее
Любая помощь, пожалуйста? Я пробовал использовать INT 21h
, функцию 2Ch
ко времени каждого цикла.
Мой учитель сказал мне, что все будет хорошо. , но ни один из светодиодов не включался, когда я пытался выполнить код.
мой код:
.model small
.stack 100
.code
Loop_time :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add bx,cx
mov dl,dh
mov dh,0
add bx,dx
push bx
loop_red :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,0ah
pop bx
cmp ax,bx
jg loop_redorange
mov DX, 378h
mov AL, 1
out DX,AL
loop_redorange:
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,0ch
pop bx
cmp ax,bx
jg loop_green
mov DX, 378h
mov AL,3
out DX,AL
loop_green :
mov ah,2ch
int 21h
mov ax,003ch
mul cl
mov ch,0000h
add ax,cx
mov dl,dh
mov dh,0
add ax,dx
add ax,20h
pop bx
cmp ax,bx
jg loop_red
mov DX, 378h
mov AL, 4
out DX,AL
mov ah,4ch
int 21h
end
То, что вы на самом деле хотите, это петля задержки или эквивалент, а не синхронизация одной инструкции или измерение производительности. –
Да! в точку . Любая помощь в этом? У моего кода не было ошибок, но он не работал. –
Мы не можем помочь вам с кодом, который вы не публикуете. [Mcve], чтобы показать, что вы пытаетесь сделать, сделало бы этот вопрос лучше. –