I'm in a struggle timing 3 loops in assembly.  

The first loop is supposed to be working for 10 sec, then jump into the second loop which should be executed for 2 seconds. The third is to be working 10 more seconds.

The main idea is to build a traffic light. Each led connected to the parallel port should turn on a different period of time using TASM.  

Red :10 sec.  

Red & orange : 2 sec  

Green : 10 sec  

and then get back to red again .. and so on 

Any help please?
I tried using `INT 21h`, function `2Ch` to time each loop . 

My teacher told me it would work out just fine this way . 
yet, none of the LEDs turned on when I tried executing the code . 

my code :

```
.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

```