Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗФ / ВМСиС сборник лабораторных работ.docx
Скачиваний:
51
Добавлен:
06.11.2017
Размер:
457.26 Кб
Скачать

Лабораторная работа №7 Программирование итеративных циклических вычислительных процессов.

  1. Цель работы.

Изучение команд передачи управления и основ программирования итеративных циклических вычислительных процессов.

  1. Задание.

    1. Предварительная часть.

  1. Изучить содержание, форму записи и последовательность выполнения команд управления циклами по [1,2]. Записать мнемокод и содержание команд: loop, loope, loopz, loopne, loopnz.

  2. Изучить методы организации циклических вычислительных процессов по [1]

  3. Разработать детальную схему алгоритма “поиск свободной ячейки в массиве”. Данный алгоритм содержит итеративный цикл - выход из цикла организуется по проверяемому условию, т.е. процесс поиска ячейки массива 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

    1. Экспериментальная часть.

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. Используя отладчик просмотреть область памяти содержащий сегмент данных, используемых программой до пересылки константы а и после пересылки соответственно.

  1. Содержание отчета.

    1. Команды управления циклами: мнемоника, содержание операции.

    2. Детальная схема алгоритма “поиск свободной ячейки в массиве”.

    3. Текст программы на языке ассемблер.

    4. Дамп памяти содержащий сегмент данных, используемых программой, шестнадцатеричном представление до пересылки константы а и после пересылки соответственно.

3.5. Таблица состояния регистров процессора (включая регистр флагов) на каждом шаге выполнения программы.

3.6. Выводы.

4. Контрольные вопросы

  1. Какие существуют команды управления циклами?

  2. Пояснить смысл команды loop, loope, loopz ,loopne, loopnz.

  3. Какие основные части содержит любая циклическая программа?

  4. Что такое итеративный цикл?

  5. Как проверить окончание цикла?

  6. Как организуется процесс продолжения операций в циклической программе?

Соседние файлы в папке ЗФ