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

Лабораторная работа №9 Программа и стек.

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

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

  1. Задание.

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

      1. Изучить содержание, форму записи и последовательность выполнения команд обмена данными со стековой памятью по [1,2]. Записать мнемокод и содержание команд pop, рора, popad, popf, popfd, push, pusha, pushad, pushf, pushfd.

      2. Разработать детальную схему алгоритма ‘‘MULT10” вычисления функции у=х*10, у<232, х<216. Число х передается программе через стек. Результат y=x*10 должен быть помещен в две переменные h и l размером в слово. В h-старшую часть результата, а в l соответственно младшую часть результата.

      3. Оформить процесс вычисления функции у=х*10 в виде программы «MULT10». Для этого в начале программы необходимо предусмотреть команду занесения в стек переменной х. Из регистров общего назначения разрешается использовать ax/ah/al, dx/ dh/dl, bp, sp. Необходимо также предусмотреть сохранение значений в регистрах ах, dx, bp, sp т.е. после окончания вычислительного процесса эти регистры должны содержать свое первоначальное значение. Вычисление функции v=x*10 производить с помощью команд сложение и сложения с переносом. Для произвольного доступа к элементам стека использовать регистр bp.

Таблица 8

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

1

2

3

4

5

6

7

8

9

x

a25616

44b316

ff4316

b7f316

fadb16

aaaa16

999b16

d1f716

6345916

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

2.2.1. Записать программу “MULT10” в текстовом редакторе “Блокнот”, на языке ассемблер. Исходные данные взять из таблицы 8.

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

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

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

3.1. Команды работы со стековой памятью, мнемоника, содержание операции.

3.2. Детальная схема алгоритма “MULT10”.

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

3.4. Таблица дампа стековой памяти содержащего данные используемые программой. При записи, возврате данных из стека фиксировать изменения в таблице.

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

  2. Выводы.

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

    1. Содержание и форма записи команд возврата данных из стека.

  1. Влияют ли команды pop и push на регистр флагов?

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

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

  4. Как получить доступ к произвольной ячейки стека?

  5. Какой регистр содержит указатель вершины стека?

  6. Как в отладчике TD просмотреть содержимое стековой памяти?

  7. В каком регистре содержится адрес памяти начала сегмента стека?

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