140 likes | 314 Views
Архитектура ЭВМ. Практика 5 . Программирование циклов. Команды для организации цикла. Организовать циклическое выполнение некоторого участка программы можно «вручную», используя команды условной передачи управления или команду безусловного перехода jmp.
E N D
Архитектура ЭВМ Практика 5. Программирование циклов.
Команды для организации цикла. • Организовать циклическое выполнение некоторого участка программы можно «вручную», используя команды условной передачи управления или команду безусловного перехода jmp. • Но, учитывая важность такого алгоритмического элемента, как цикл, разработчики микропроцессора ввели в систему команд группу команд, облегчающую программирование циклов. • Эти команды используют регистр ecx/cx как счетчик цикла.
loop <метка_перехода> Команда позволяет организовать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла. Работа команды: • уменьшение регистра ecx/cx на 1; • если (ecx/cx) > 0, то управление передается на метку перехода; • если (ecx/cx) = 0, то управление передается на следующую после loop команду.
loope/loopz <метка_перехода> Работа команд: • уменьшение регистра ecx/cx на 1; • анализ состояния флага нуля zf: • если (ecx/cx) > 0 и zf = 1, то управление передается на метку перехода; • если (ecx/cx) = 0 или zf = 0, то управление передается на следующую после loop команду.
loopne/loopnz <метка_перехода> • Работа команд: • уменьшение регистра ecx/cx на 1; • анализ состояния флага нуля zf: • если (ecx/cx) > 0 и zf = 0, то управление передается на метку перехода; • если (ecx/cx) = 0 или zf = 1, то управление передается на следующую после loop команду.
Пример программы с вложенным циклом
Практическое задание • Изучить пример программы. • Разработать программу для своего варианта арифметических действий. • Протестировать программу. Записать в отчет заданные исходные данные и полученные результаты.
Отчет должен содержать: • Номер варианта, условие задачи • Текст программы с комментариями. • Результат тестирования программы (расчетные и полученные результаты тестирования).