Специализация регистра CX использование в качестве счетчика. Предположим, мы хотим 10 раз повторить выполнение блока инструкций. Это можно сделать следующим образом:
mov cx,10
Begin:
<блок инструкций, который нужно повторить>
sub cx,1
jnz Begin
Не беспокойтесь, если в программе вы увидите незнакомые элементы. Важно то, что инструкции между меткой Begin и инструкцией JNZ будут повторяться до тех пор, пока содержимое регистра CX не станет равным 0. Заметим, что чтобы уменьшить содержимое CX и перейти на начало цикла Begin, если регистр CX еще не равен 0, здесь используются две инструкции SUB CX,1 и JNZ.
Уменьшение значения счетчика и цикл это часто используемый элемент программы, поэтому в процессоре 8086 используется специальная инструкция для того, чтобы циклы выполнялись быстрее и были более компактными. Эта инструкция называется LOOP. Инструкция LOOP (инструкция цикла) вычитает 1 из значения регистра CX и выполняет переход, если содержимое регистра CX не равно 0 (все это в одной инструкции). Для приведенного выше примера можно записать такой эквивалент:
mov cx,10
Begin:
<блок инструкций, который нужно повторить>
loop Begin
К рассмотрению циклов мы вернемся в Главе 5 «Основные элементы программы на языке Ассемблера». А пока запомните, что регистр CX особенно полезен для использования в циклах и в качестве счетчика.
Как и регистры AX, BX и DX, регистр CX можно интерпретировать, как два 8разрядных регистра CH и CL.
