Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТ_ОРГ_1.doc
Скачиваний:
29
Добавлен:
18.11.2019
Размер:
1.27 Mб
Скачать

2Общие указания по выполнению лабораторных работ

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

Лабораторная работа № 1 Изучение структуры программы и способов адресации мп 8086

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

Домашняя подготовка

Ознакомиться с теоретической частью лабораторной работы (разделы 1.6; 2.1-2.4).

  • Изучить программно-доступные регистры МП 8086, преобразование логических адресов в физические, структурную организацию памяти, подготовить ответы на контрольные вопросы [1,2,3].

  • Изучить способы адресации данных[1-9].

  • Ознакомиться с принципом отладки программ, написанных на языке ассемблера, с помощью отладчика.

  • Составить на языке ассемблера программу в соответствии с номером своего варианта. Сделать описание группы команд, указанных в варианте задания.

Лабораторное задание

Загрузить под управлением отладчика программу и исследовать её работу. Исследовать положение стека в памяти при условии, что сегмент стека в тексте программы не объявлен.

Выполнить программу в пошаговом режиме отладчика.

Проверить правильность полученных результатов.

Ответить на контрольные вопросы.

Оформить отчет, который должен содержать: схему алгоритма отлаженной программы и его описание, текст программы, описание команд программы и группы команд, структурную схему МП 8086.

Варианты задания

Вариант 1

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Ввести с клавиатуры 4-е 16-ричных цифры, преобразовать их в символьный двоичный код (результат преобразования вывести на экран). Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание регистров МП 8086.

Вариант 2

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Определить, если в заданной строке цифры (строку ввести с клавиатуры). Вывести на экран «Да/Нет». Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы арифметических команд.

Вариант 3

        1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Программа должна суммировать однобайтовые числа из массива с начальным адресом MAS. Суммирование необходимо производить в ЯП с адресом SUM до тех пор, пока накопленное значение SUM200, после чего результат суммирования переслать в видеобуфер для отображения на мониторе. Программа должна состоять из сегментов данных, кода и стека.

        2. Сделать описание группы логических команд.

Вариант 4

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Необходимо произвести сложение двух десятиразрядных чисел №1 и №2, представленных в двоично-десятичном коде. Для организации сложения следует использовать команды работы со строками. Числа №1 и №2 рассматриваются как цепочки из 5 байтов каждое, записанные в памяти, начиная от младшего байта к старшему. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд пересылки данных.

Вариант 5

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Требуется найти среднее арифметическое 16-ти двухбайтовых чисел массива W, хранимых в памяти в дополнительном коде, полученный результат преобразовать в символьную форму и вывести на монитор. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 6

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Для демонстрации техники организации циклов написать программу, в которой создается и выводится на экран текстовый символьный массив, заполненный кодами алфавитно-цифровых и псевдографических символов. Эти символы имеют коды от 32 (пробел) до 254 (сплошной квадратик). Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание регистров МП 8086.

Вариант 7

  1. Написать программу поиска последнего пробела в строке длинной 80 символов. Результат работы программы: адрес байта за последним пробелом в строке. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд условного перехода.

Вариант 8

        1. Написать программу преобразования в двоичную форму упакованного четырехразрядного двоично-десятичного числа (введённого с клавиатуры) и вывода результата преобразования на экран в двоичном виде. Программа должна состоять из сегментов данных, кода и стека.

        2. Сделать описание группы команд управления микропроцессором.

Вариант 9

  1. Используя команды для работы с неупакованными числами, выполнить сложение двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд сравнения.

Вариант 10

  1. Используя команды для работы с неупакованными числами, выполнить вычитание двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд для работы со строками.

Вариант 11

  1. Используя команды для работы с упакованными числами, выполнить сложение двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд сдвига.

Вариант 12

  1. Используя команды для работы с упакованными числами, выполнить вычитание двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд управления циклом.

Вариант 13

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Заполнить символом «*» область памяти размером 100 байт начиная с адреса B800:0100h, а оставшуюся часть видеостраницы символом «!». Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд работы со строками.

Вариант 14

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере: преобразовать шестнадцатеричное число без знака из регистра DX в десятичный формат и вывести его на монитор. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд условного перехода.

Вариант 15

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Найти в массиве из 15 однобайтных чисел максимальное число и вывести его на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 16

        1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 2-х байтовых чисел. Найти среди них наименьшее и вывести на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.

        2. Сделать описание группы команд условного перехода.

Вариант 17

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Получить с помощью косвенной адресации вектор обработчика 21 прерывания. Результат вывести на монитор в шестнадцатеричной системе счисления. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание способов адресации МП8086.

Вариант 18

        1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 однобайтовых чисел. Найти среднее арифметическое и вывести на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.

        2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 19

              1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив двухразрядных десятичных чисел. Создать второй массив, содержащий квадраты этих чисел; результат в символьной форме переслать в видеобуфер. Программа должна состоять из сегментов данных, кода и стека.

              2. Сделать описание группы команд передачи управления.

Вариант 20

              1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере определения количества слов в строке введённой с клавиатуры; вывести сообщение о полученном результате. Программа должна состоять из сегментов данных, кода и стека.

              2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 21

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Переслать строку символов, введенных с клавиатуры, из одного сегмента данных в другой и отобразить на экран с использованием видеобуфера. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание регистров МП 8086.

Вариант 22

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 чисел от 0 до 9. Изменить порядок следования элементов на обратный. Результат вывести на монитор, используя для этого видеобуфер. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 23

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Вывести трижды (в разные позиции) на монитор строку «Мы изучаем ассемблер», используя для этого видеобуфер. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд работы со стеком.

Вариант 24

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 чисел от 0 до 9. Поменять местами четные и нечетные элементы(1 2 3 4 =>2 1 4 3). Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание способов адресации команд, входящих в программу п.1.

Вариант 25

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Вывести на монитор 4-х разрядное число в шестнадцатеричной системе счисления. Число ввести с клавиатуры. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы логических команд.

Вариант 26

  1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере определения количества различных цифр в 7-ми разрядном числе. Число вводить с клавиатуры, результат отобразить на мониторе. Программа должна состоять из сегментов данных, кода и стека.

  2. Сделать описание группы команд сравнения и перехода.

Вариант 27

        1. Построить схему алгоритма решения задачи, а затем написать программу на ассемблере: преобразовать 16-тибитное число без знака из регистра AX в десятичный формат и вывести его на монитор. Программа должна состоять из сегментов данных, кода и стека.

        2. Сделать описание способов адресации команд, входящих в программу п.1.