Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Организация циклов



Организовать циклическое выполнение некоторого фрагмента программы можно, к примеру, используя команды условной передачи управления или команду безусловного перехода JMP.

Например, подсчитаем количество нулевых байтов в области mas.

model small

.stack 100h

.data

len equ 10;количество элементов в mas

mas db 1,0,9,8,0,7,8,0,2,0;инициализируем массив

.code

start:

mov ax,@data

mov ds, ax

mov сx, len;длину поля mas в сх

xor ax,ax;обнуляем ax

xor si,si;обнуляем si

cycl:

jcxz exit;проверка сх на 0, если 0, то выход

cmp mas[si],0;сравнить элемент mas с 0

jne ml;если не равно 0, то на ml

inc al;в al - счетчик нулевых элементов

ml:

inc si;перейти к следующему элементу

dec сх;уменьшить сх на 1

jmp cycl;переход на метку cycl

exit:

mov ax,4c00h

int 21h

end start

Цикл организован тремя командами, JCXZ, DEC и JMP. Команда JCXZ выполняет здесь две функции: предотвращает выполнение «пустого» цикла (когда счетчик цикла в СХ равен нулю) и отслеживает окончание цикла после обработки всех элементов поля mas. Команда DEC после каждой итерации цикла уменьшает значение счетчика в регистре СХ на 1.

Команда LOOP также позволяет организовать циклы (loops), подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла. Синтаксис команды:





Дата публикования: 2014-12-08; Прочитано: 274 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...