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

Принципы организации вложенных циклов



Основная проблема, которая при этом возникает, – как сохранить значения счетчиков в регистре СХ для каждого из циклов. Для временного сохранения счетчика внешнего цикла на время выполнения внутреннего доступно несколько способов: задействовать регистры, ячейки памяти или стек. В следующем фрагменте программы имеется три цикла, вложенные один в другой. Этот фрагмент можно рассматривать как шаблон для построения других программ с вложенными циклами.

mov сх,100;количество повторений цикла cycl_l

cycl_l:

push сх;счетчик цикла cycl_l в стек

…..;команды цикла cycl_l

mov сх,50;количество повторений цикла cycl_2

cycl_2:

push сх;счетчик цикла cycl_2 в стек

.....;команды цикла cycl_2

mov сх,25;количество повторений цикла cycl_3

cycl_3:

.....;команды цикла cycl_3

loop cycl_3

...;команды цикла cycl_2

pop сх;восстановить счетчик цикла cycl_2

loop cycl_2

...;команды цикла cycl_l

pop сх;восстановить счетчик цикла cycl_l

loop cycl_l

Пример фрагмента программы, которая обрабатывает специальным образом некоторую область памяти. Область памяти рассматривается как совокупность пяти полей, содержащих 10 однобайтовых элементов. Требуется заменить все нулевые байты в этой области значением 0ffh.

model small

.stack 100h

.data

mas db 1,0,9,8,0,7,8,0,2,0

db 1,0,9,8,0,7,8,0,2,0

db 1,0,9,8,0,7,8,0,2,0

db 1 0,9,8,0,7,8,0,2,0

db 1,0,9,8,0,7,8,0,2,0

. code

start:

mov ax,@data

mov ds,ax

xor ax, ax

lea bx, mas

mov сx, 5

cycl_l:

push сx

xor si, si

mov cx, 10

cycl_2:

cmp byte ptr [bx+si],0

jne no_zero

mov byte ptr [bx+si],0ffh

no_zero:

inc si

loop cycl_2

pop cx

add bx, 10

loop cycl_l

exit:

mov ax, 4c00h

int 21h

end start


ЛИТЕРАТУРА





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



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