Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5ZTMNyz0U3.file.doc
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
291.84 Кб
Скачать

1.3. Задание на лабораторную работу

1) Написать и выполнить следующие программы на базе примеров из теоретической части:

– записать в переменную значение большей из двух других переменных;

– записать в переменную (слово без знака) сумму двух переменных-байтов – байтов без знака (учитывая возможность переноса при сложении байтов);

– вычислить (записать в AX) сумму элементов вектора слов (считая, что результат помещается в слове).

2) Выполнить индивидуальное задание согласно варианту из таблицы 4.

Таблица 4

Варианты индивидуальных заданий на лабораторную работу

варианта

Задание

1

Найти (поместить в регистр BX) меньший из элементов вектора беззнаковых слов

2

Найти (поместить в специально отведенную ячейку памяти) больший из элементов вектора знаковых байтов

3

Найти максимальный отрицательный элемент вектора знаковых слов

4

Найти минимальный положительный элемент вектора знаковых байтов

Продолжение табл. 4

5

Поменять местами соседние (первый со вторым, третий с четвертым и т.д.) элементы вектора беззнаковых байтов

6

В каждой паре соседних (первый и второй, третий и четвертый и т.д.) элементов вектора беззнаковых слов первым поставить больший (из двух)

7

В каждой паре соседних (первый и второй, третий и четвертый и т.д.) элементов вектора знаковых байт первым поставить меньший (из двух)

8

Проверить, упорядочен ли по убыванию вектор знаковых байт

9

Найти сумму двух векторов слов (т.е. заполнить третий вектор)

10

Найти разность двух векторов байтов (т.е. заполнить третий вектор)

11

Вычислить сумму двух двойных слов (считать, что в них хранятся беззнаковые числа). Сумму разместить в третьем двойном слове. Если сумма не помещается, то выдать соответствующее сообщение

12

Проверить, упорядочен ли по возрастанию вектор беззнаковых слов

    1. 1.4. Отчет по лабораторной работе

Отчет по лабораторной работе должен содержать:

– текст полученного задания с указанным номером варианта;

– тексты программ с комментариями (в комментариях отобразить изменения содержимого регистров и флагов по ходу выполнения программы).

Кроме отчета и демонстрации работающей программы студент отвечает на вопросы по теоретической части, относящейся к данной лабораторной работе.

2. Лабораторная работа № 4

СТЕК

    1. 2.1. Общие методические указания по выполнению лабораторной работы

Цели работы:

– Знакомство с особенностями организации стека.

– Изучение стековых команд и приемов работы со стеком.

Среда выполнения:

Интерпретатор команд DOS, ассемблер MASM, интерактивный отладчик AFD.

2.2. Теоретические сведения

2.2.1. Стек и сегмент стека

Стек – это хранилище, работа с которым ведется по следующему принципу: элемент, записанный в стек последним, считывается из него первым. Под такое хранилище можно отвести любую область памяти, но к ней предъявляются следующие требования: ее размер не должен превышать 64 Кб и ее начальный размер должен быть кратен 16. Иначе говоря, эта область должна быть сегментом памяти, который обычно называют сегментом стека.

Регистры, используемые для работы со стеком.

SS – сегментный регистр, по которому базируются адреса из стека (в нем находятся старшие 16 разрядов абсолютного адреса начала сегмента стека в ОП).

SP – указывает на вершину стека (последний положенный в стек элемент). В данном регистре хранится не сам адрес вершины, а ее смещение, т.е. адрес вершины, отсчитанный от начала сегмента стека. Поэтому абсолютный адрес вершины стека задается парой SS:SP.

Элементы стека могут иметь любой размер: байты, слова, двойные слова и т.д. Однако команды записи в стек и считывания из стека работают только со словами. Обработка же двойных слов и байтов следует подгонять под обработку слов.

Оформление сегмента стека размером k байт осуществляется следующим образом:

S SEGMENT STACK

DB k dup (?)

S ENDS

Параметр STACK директивы SEGMENT автоматически записывает в регистр SS начало сегмента стека, а в SP размер стека в байтах (число k).

Если стек явно не используется, то он все равно должен быть (для работы системы прерываний и ОС). Рекомендуемый размер в этом случае – 128 байт. Если же программа сама использует стек, то под него надо отводить столько места, сколько надо программе, плюс 128 байтов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]