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

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

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

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

2. Задание.

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

  1. Разработать детальную схему алгоритма ‘‘Сдвиг” (сдвиг кодов в массиве MAS). Данный алгоритм имеет регулярный цикл сдвига, при котором выход из цикла организуется по содержимому счетчика, т.е. циклическая программа заканчивается тогда, когда регистр, в котором организован счетчик циклов, обнуляется. Очевидно, что число циклов сдвига заранее известно. Массив MAS содержит N ячеек, размером 1 байт см. таблицу 7.

Для правильной реализации алгоритма в программе необходимо организовать два цикла. Первый цикл осуществляет пересылку содержимого N-1 ячейки в N ячейку, N-2 в N-1 и т.д. По окончании этого цикла содержимое нулевой ячейки содержится в первой ячейке. Очевидно, что число раз работы цикла составляет N-1. Второй цикл осуществляет повторный запуск первого цикла. Работа второго цикла заключается в последовательном продвижении содержимого нулевой ячейки в первую ячейку затем во вторую и т.д. Число раз работы второго цикла составляет N-1.

  1. Изучить последовательность выполнения программы в режиме с остановом по контрольным точкам. В отличие от шагового режима, когда производится останов после выполнения каждой команды, в режиме останова по контрольным точкам выполнение программы прерывается по достижению заданного заранее адреса, условно названного контрольной точкой.

Контрольная точка вводится в отладчике TD перед выполнением программы. Если необходимо проверить результат выполнения некоторой команды Ki, то контрольная точка должна быть введена по адресу следующей K(i-l) команды. Можно также установить контрольную точку и на Ki команду, но для получения результата работы этой команды необходимо после останова программы нажать клавишу F7.

Последовательность действий при вводе контрольной точки:

  • установить курсор на ту команду, где предполагается установить контрольную точку.

  • нажать клавишу F2 или в пункте меню Breakpoints выбрать Toggle. Команда, на которой установлена контрольная точка будет выделена красным цветом. Повторное нажатие клавиши F2 снимает ранее установленную контрольную точку.

После ввода контрольной точки необходимо осуществить запуск программы нажатием клавиши F9. Выполнение программы прервется в контрольной точке. После этого можно проконтролировать содержимое регистров МП или определенных ячеек оперативной памяти. Таблица 7

Номер бригады

1

2

3

4

5

6

7

8

9

N

10

12

9

8

14

13

11

15

7

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

      1. Записать программу "Сдвиг” в текстовом редакторе “Блокнот” на языке ассемблер. Из регистров общего назначения в программе разрешается использовать ax/ah/al, bx. Массив MAS задается для каждой бригады преподавателем, ведущим лабораторные работы.

      2. Произвести компоновку полученной программы, т.е. создать загрузочный модуль с опциями для tasm.exe - [/zi], а для tlink.exe - [/v],

      3. Загрузить отладчик TD и исследовать в нем работу программы в пошаговом режиме, нажимая клавишу F7. Используя отладчик контролировать область памяти содержащий сегмент данных, используемых программой, на каждом шаге работы.

      4. Исследовать работу программы в непрерывном режиме с остановом по контрольной точке. Для этого установить контрольную точку на команду следующую за последней командой первого цикла. Зафиксировать в таблице область памяти содержащей массив MAS в шестнадцатеричном представлении, пройдя в пошаговом режиме первые две команды. Далее запустить программу в непрерывном режиме нажатием клавиши F9. После останова на контрольной точке продолжить запись в таблицу массива MAS. Продолжать фиксировать в таблицу содержимое массива MAS до конца программы, с помощью клавиши F9 и останова на контрольной точке.

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

    1. Таблица содержащая заданный массив MAS и измененный массив MAS после каждого останова на контрольной точке.

    2. Детальная схема алгоритма "Сдвиг".

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

    4. Таблица состояния регистров процессора (включая регистр флагов) после останова на контрольной точке.

    5. Выводы.

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

    1. Как организуется регулярный цикл?

    2. Основные части циклической программы.

    3. Как ввести несколько контрольных точек?

  1. Как стереть контрольную точку?

  2. Является ли регистр bх регистром модификатором?

  3. При завершении работы программы как осуществляется передача управления MS-DOS?

  4. На что влияет задание определенной модели памяти в тексте программы?

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