Her programlama dili gibi assembly programlama yaparken de döngüler işimizi çok kolaylaştırmaktadır. Bazı döngü komutları ve görevleri aşağıda verilmiştir.
Komut | Açıklaması |
loop | eğer cx değeri 0 değilse, cx değerini 1 azaltır ve ilgili etikete zıplama yapar. |
loope | eğer cx değeri sıfır değil ve zf 1 ise etikete zıplama yapar, cx değerini bir azaltır |
loopne | eğer cx değeri sıfır değil ve zf 0 ise etikete zıplama yapar, cx değerini bir azaltır |
loopnz | eğer eğer cx 0 değilse ve zf 0 ise zıplama yapar, cx değerini bir azaltır |
loopz | eğer eğer cx 0 değilse ve zf 1 ise zıplama yapar, cx değerini bir azaltır |
jcxz | eğer cx 0 ise zıplama yapar |
Bu kodlar ile örnek olarak 1 den 10 a kadar olan sayıların toplamını bulan bir kod parçası yazmak istersek aşağıdaki gibi yazabiliriz.
mov cx,10
topla:
add ax,cx
loop topla
Programda ihityaca göre aşağıdaki gibi karşılaştırmalar da yapılabilir. örnek olarak aşağıda döngünün 100 adet dönmesi gerekiyorken cx 50 olduğunda break komutu gibi döngüyü sonlandırmak için loopne komutunu kullanabiliriz.
mov cx,100
dongu:
cmp cx,50
loopne dongu
hlt