Jak ustawić 1 sekundowe opóźnienie w języku asemblerowym 8086

Mój problem polega na tym, że napisałem kod, który ma wyprowadzić wynik do zestawu diod LED podłączonych do portu równoległego. Kiedy uruchomiłem kod, prawie nic nie zrobił. Mój instruktor powiedział mi, że kod działa zbyt szybko, że moje oczy nie widziały, co się stało.

Odkryłem, że istnieje kilka sposobów na opóźnienie czasowe, próbowałem zapętlić NOP, ale myślę, że naprawdę nie mogę określić, co się dzieje. Czy jest lepszy sposób?

Mam tutaj część kodu, w której muszę dodać opóźnienie czasowe w:

org 100h

mov ax, 0
mov dx, 378
out dx, ax
mov ax, 1  

; 1st

mov cx, 1ah
start1st:
mov ax, 1
left:
out dx, ax 
; --------------------------------> how to loop?
mov bx, 2
mul bx
cmp ax, 80h
jl left
dec cx
cmp cx,0
jg start1st
; end 1st 

questionAnswers(6)

yourAnswerToTheQuestion