- •Федеральное агентство связи
- •Регистры общего назначения.
- •Сегментные регистры.
- •Регистры состояния и управления.
- •Формат команд.
- •Создание программы на ассемблере.
- •Отладчик Turbo Debugger.
- •Структура программы на ассемблере.
- •Методические указания по выполнению лабораторных работ.
- •Лабораторная работа №1 Изучение пакета tasm и организация ввода данных с клавиатуры.
- •Лабораторная работа №2 Система адресования и последовательность выполнения основных команд пересылки.
- •Лабораторная работа №3 Программирование арифметических операций.
- •Лабораторная работа №4 Программирование логических операций
- •Лабораторная работа №5 Запись и выполнение программ пересылки данных между информационными массивами.
- •Лабораторная работа №6 Программирование ветвящихся вычислительных процессов.
- •Лабораторная работа №7 Программирование итеративных циклических вычислительных процессов.
- •Лабораторная работа №8 Программирование и контроль регулярных циклических вычислительных процессов.
- •Лабораторная работа №9 Программа и стек.
- •Лабораторная работа № 10 Программирование вычислительных процессов с использованием стандартных подпрограмм.
Лабораторная работа №7 Программирование итеративных циклических вычислительных процессов.
Цель работы.
Изучение команд передачи управления и основ программирования итеративных циклических вычислительных процессов.
Задание.
Предварительная часть.
Изучить содержание, форму записи и последовательность выполнения команд управления циклами по [1,2]. Записать мнемокод и содержание команд: loop, loope, loopz, loopne, loopnz.
Изучить методы организации циклических вычислительных процессов по [1]
Разработать детальную схему алгоритма “поиск свободной ячейки в массиве”. Данный алгоритм содержит итеративный цикл - выход из цикла организуется по проверяемому условию, т.е. процесс поиска ячейки массива MAS заканчивается после обнаружения первой свободной ячейки. Заранее известно, что в массиве MAS имеется хотя бы одна свободная ячейка. После обнаружения свободной ячейки ее индекс в массиве записывается в регистр bx. Массив MAS содержит N (менее 256) ячеек. Значения N для каждой бригады приведены в таблице 6.
Таблица 6
Номер бригады |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
N |
10 |
12 |
9 |
8 |
14 |
13 |
11 |
15 |
16 |
a |
3610 |
4716 |
1410 |
3616 |
AD16 |
7910 |
1F16 |
1110 |
3716 |
Экспериментальная часть.
2.2.1. Записать программу “поиск свободной ячейки в массиве” в текстовом редакторе “Блокнот” на языке ассемблер. Для этого сформировать массив MAS с числом элементов равным N. Необходимо учитывать, что хотя бы один элемент массива MAS должен быть нулевым. Размер элементов массива принять равным 1 байту. Осуществить цикл по элементам массива MAS и проверку очередного элемента массива на равенство 0. Поместить индекс нулевого элемента в регистр dl. Используя полученное значение индекса нулевого элемента, переслать в этот элемент константу а (размер 1 байт) из таблицы 6.
2.2.2. Произвести компоновку полученной программы, т.е. создать загрузочный модуль с опциями для tasm.exe - [/zi], а для tlink.exe - [/v].
2.2.3. Загрузить отладчик TD и исследовать в нем работу программы в пошаговом режиме, нажимая клавишу F7. Используя отладчик просмотреть область памяти содержащий сегмент данных, используемых программой до пересылки константы а и после пересылки соответственно.
Содержание отчета.
Команды управления циклами: мнемоника, содержание операции.
Детальная схема алгоритма “поиск свободной ячейки в массиве”.
Текст программы на языке ассемблер.
Дамп памяти содержащий сегмент данных, используемых программой, шестнадцатеричном представление до пересылки константы а и после пересылки соответственно.
3.5. Таблица состояния регистров процессора (включая регистр флагов) на каждом шаге выполнения программы.
3.6. Выводы.
4. Контрольные вопросы
Какие существуют команды управления циклами?
Пояснить смысл команды loop, loope, loopz ,loopne, loopnz.
Какие основные части содержит любая циклическая программа?
Что такое итеративный цикл?
Как проверить окончание цикла?
Как организуется процесс продолжения операций в циклической программе?