- •По курсу: ”организация эвм и систем”
- •Печатается по решению редакционно-издательского совета
- •Введение
- •1Введение в архитектуру реального режима ibm pc
- •Память и процессор
- •Распределение адресного пространства
- •Система прерываний
- •Система ввода-вывода
- •Архитектурные особенности процессоров ia-32
- •Дополнительные режимы адресации
- •Использование средств 32-разрядных процессоров в программировании
- •2Общие указания по выполнению лабораторных работ
- •Лабораторная работа № 1 Изучение структуры программы и способов адресации мп 8086
- •Домашняя подготовка
- •Лабораторное задание
- •Варианты задания
- •Контрольные вопросы
- •Теоретическая часть
- •Способы адресации и оптимизация программ
- •Строковые команды
- •Сканирование строки.
- •Загрузка регистра из строки.
- •Сегментная структура программ (структура и образ памяти программы .Exe).
- •Двоично-десятичные числа
- •Лабораторная работа № 2. Организация доступа к дискам в режиме ms dos и анализ системных ошибок.
- •Домашняя подготовка
- •Лабораторное задание
- •Варианты заданий
- •Контрольные вопросы
- •Теоретическая часть
- •Лабораторная работа № 3. Организация прерываний и резидентные программы.
- •Домашняя подготовка
- •Лабораторное задание
- •Контрольные вопросы
- •Варианты задания
- •Теоретическая часть (См. Также разделы 1.3 и 2.4)
- •3Организация прерываний и резидентные программы.
- •Резидентные программы
- •Механизм прерываний
- •Структура и образ памяти программы .Сом
- •Примеры резидентных программ
- •Лабораторная работа № 4. Системное время в компьютерах ibm pc
- •Варианты задания
- •Домашняя подготовка
- •Контрольные вопросы
- •Теоретическая часть
- •4 Системное время в компьютерах ibm pc
- •Измерение частоты при помощи rdtsc
- •Назначение каналов таймера в ibm pc
- •Библиографический список
- •Приложение Функции ms dos для выполнения лабораторных работ
- •Установка вектора прерывания
- •Чтение вектора прерывания
- •Завершение программы
- •Создание файла
- •Закрытие файла
- •Чтение из файла
- •Очистка экрана
- •Дополнительные средства ассемблера
2Общие указания по выполнению лабораторных работ
Для успешного выполнения лабораторных работ требуется домашняя подготовка. При домашней подготовке студенты должны ознакомиться с данным описанием, рекомендованной литературой и лабораторным заданием, ответить на контрольные вопросы, выполнить домашнее задание. Отчет должен содержать данные, указанные в описании лабораторной работы. Допуск к выполнению лабораторных заданий дается преподавателем только после проверки выполнения студентом домашних заданий и собеседования с целью выявления понимания существа выполняемой работы. Предполагается, что студенты знакомы с архитектурой, системой команд и приемами программирования на языке ассемблера микропроцессора 8086.
Лабораторная работа № 1 Изучение структуры программы и способов адресации мп 8086
Цель работы: состоит в изучении структуры программ, написанных на языке ассемблера, и способов адресации данных, написании и отладке простых программ.
Домашняя подготовка
Ознакомиться с теоретической частью лабораторной работы (разделы 1.6; 2.1-2.4).
Изучить программно-доступные регистры МП 8086, преобразование логических адресов в физические, структурную организацию памяти, подготовить ответы на контрольные вопросы [1,2,3].
Изучить способы адресации данных[1-9].
Ознакомиться с принципом отладки программ, написанных на языке ассемблера, с помощью отладчика.
Составить на языке ассемблера программу в соответствии с номером своего варианта. Сделать описание группы команд, указанных в варианте задания.
Лабораторное задание
Загрузить под управлением отладчика программу и исследовать её работу. Исследовать положение стека в памяти при условии, что сегмент стека в тексте программы не объявлен.
Выполнить программу в пошаговом режиме отладчика.
Проверить правильность полученных результатов.
Ответить на контрольные вопросы.
Оформить отчет, который должен содержать: схему алгоритма отлаженной программы и его описание, текст программы, описание команд программы и группы команд, структурную схему МП 8086.
Варианты задания
Вариант 1
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Ввести с клавиатуры 4-е 16-ричных цифры, преобразовать их в символьный двоичный код (результат преобразования вывести на экран). Программа должна состоять из сегментов данных, кода и стека.
Сделать описание регистров МП 8086.
Вариант 2
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Определить, если в заданной строке цифры (строку ввести с клавиатуры). Вывести на экран «Да/Нет». Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы арифметических команд.
Вариант 3
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Программа должна суммировать однобайтовые числа из массива с начальным адресом MAS. Суммирование необходимо производить в ЯП с адресом SUM до тех пор, пока накопленное значение SUM200, после чего результат суммирования переслать в видеобуфер для отображения на мониторе. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы логических команд.
Вариант 4
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Необходимо произвести сложение двух десятиразрядных чисел №1 и №2, представленных в двоично-десятичном коде. Для организации сложения следует использовать команды работы со строками. Числа №1 и №2 рассматриваются как цепочки из 5 байтов каждое, записанные в памяти, начиная от младшего байта к старшему. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд пересылки данных.
Вариант 5
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Требуется найти среднее арифметическое 16-ти двухбайтовых чисел массива W, хранимых в памяти в дополнительном коде, полученный результат преобразовать в символьную форму и вывести на монитор. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 6
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Для демонстрации техники организации циклов написать программу, в которой создается и выводится на экран текстовый символьный массив, заполненный кодами алфавитно-цифровых и псевдографических символов. Эти символы имеют коды от 32 (пробел) до 254 (сплошной квадратик). Программа должна состоять из сегментов данных, кода и стека.
Сделать описание регистров МП 8086.
Вариант 7
Написать программу поиска последнего пробела в строке длинной 80 символов. Результат работы программы: адрес байта за последним пробелом в строке. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд условного перехода.
Вариант 8
Написать программу преобразования в двоичную форму упакованного четырехразрядного двоично-десятичного числа (введённого с клавиатуры) и вывода результата преобразования на экран в двоичном виде. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд управления микропроцессором.
Вариант 9
Используя команды для работы с неупакованными числами, выполнить сложение двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд сравнения.
Вариант 10
Используя команды для работы с неупакованными числами, выполнить вычитание двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд для работы со строками.
Вариант 11
Используя команды для работы с упакованными числами, выполнить сложение двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд сдвига.
Вариант 12
Используя команды для работы с упакованными числами, выполнить вычитание двух ВСD чисел, введённых с клавиатуры. Число десятичных разрядов равно 4. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд управления циклом.
Вариант 13
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Заполнить символом «*» область памяти размером 100 байт начиная с адреса B800:0100h, а оставшуюся часть видеостраницы символом «!». Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд работы со строками.
Вариант 14
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере: преобразовать шестнадцатеричное число без знака из регистра DX в десятичный формат и вывести его на монитор. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд условного перехода.
Вариант 15
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Найти в массиве из 15 однобайтных чисел максимальное число и вывести его на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 16
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 2-х байтовых чисел. Найти среди них наименьшее и вывести на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд условного перехода.
Вариант 17
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Получить с помощью косвенной адресации вектор обработчика 21 прерывания. Результат вывести на монитор в шестнадцатеричной системе счисления. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации МП8086.
Вариант 18
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 однобайтовых чисел. Найти среднее арифметическое и вывести на монитор в символьной форме. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 19
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив двухразрядных десятичных чисел. Создать второй массив, содержащий квадраты этих чисел; результат в символьной форме переслать в видеобуфер. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд передачи управления.
Вариант 20
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере определения количества слов в строке введённой с клавиатуры; вывести сообщение о полученном результате. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 21
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Переслать строку символов, введенных с клавиатуры, из одного сегмента данных в другой и отобразить на экран с использованием видеобуфера. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание регистров МП 8086.
Вариант 22
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 чисел от 0 до 9. Изменить порядок следования элементов на обратный. Результат вывести на монитор, используя для этого видеобуфер. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 23
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Вывести трижды (в разные позиции) на монитор строку «Мы изучаем ассемблер», используя для этого видеобуфер. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд работы со стеком.
Вариант 24
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Дан массив из 10 чисел от 0 до 9. Поменять местами четные и нечетные элементы(1 2 3 4 =>2 1 4 3). Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.
Вариант 25
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере. Вывести на монитор 4-х разрядное число в шестнадцатеричной системе счисления. Число ввести с клавиатуры. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы логических команд.
Вариант 26
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере определения количества различных цифр в 7-ми разрядном числе. Число вводить с клавиатуры, результат отобразить на мониторе. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание группы команд сравнения и перехода.
Вариант 27
Построить схему алгоритма решения задачи, а затем написать программу на ассемблере: преобразовать 16-тибитное число без знака из регистра AX в десятичный формат и вывести его на монитор. Программа должна состоять из сегментов данных, кода и стека.
Сделать описание способов адресации команд, входящих в программу п.1.