- •Часть 1
- •302030, Г. Орел, ул. Московская, 65
- •Содержание
- •Введение
- •1 Используемое оборудование и программное обеспечение
- •2 Общая подготовка к выполнению лабораторных работ
- •3 Общий ход выполнения и защиты лабораторных работ
- •4 Основные теоретические положения по программированию на языке ассемблера
- •4.1 Организация памяти для хранения программ
- •4.2 Режимы адресации данных микропроцессора Intel 8086
- •4.3 Режимы адресации переходов микропроцессора Intel 8086
- •4.4 Слово состояния микропроцессора Intel 8086
- •4.5 Список сокращений и условных обозначений
- •4.6 Общий формат ассемблерной команды
- •4.7 Определение данных
- •4.8 Регистры процессора Pentium.
- •4.9 Команды языка ассемблера
- •4.9.1 Команды передачи данных
- •4.9.2 Команды двоичных сложений и вычитаний
- •4.9.3 Однооперандные команды двоичной арифметики и команды сравнения
- •4.9.4 Команды умножения и деления двоичных чисел
- •4.9.5 Логические команды
- •4.9.6 Команды сдвигов и циклических сдвигов
- •4.9.7 Команды передачи управления
- •1) Безусловные переходы.
- •1.1) Команда безусловного перехода
- •1.2) Обращение к процедурам
- •2) Условные переходы
- •4.9.8 Команды циклов
- •4.9.9 Стековые команды
- •1) Организация стека
- •2) Использование стека для передачи параметров
- •4.9.10 Работа с устройствами ввода-вывода
- •5 Процесс ассемблирования и выполнения программы
- •5.1 Получение исполняемого модуля
- •5.2 Работа с отладчиком программ turbo debugger
- •6 Программа на языке ассемблера
- •6.1 Структура программы
- •6.2 Примеры программ
- •7 Лабораторная работа № 1. Арифметические операции над байтами и словами. Линейное исполнение программ
- •7.1 Цель работы
- •7.2 Контрольные вопросы
- •7.3 Задание на лабораторную работу
- •8 Лабораторная работа № 2. Логические операции и операции сдвига над данными
- •8.1 Цель работы
- •8.2 Контрольные вопросы
- •8.3 Задание на лабораторную работу
- •9 Лабораторная работа № 3. Команды условного и безусловного переходов. Организация ветвлений и циклов в программе
- •9.1 Цель работы
- •9.2 Контрольные вопросы
- •9.3 Задание на лабораторную работу
- •10 Лабораторная работа № 4. Использование стека и подпрограмм. Организация внутрисегментных и межсегментных переходов
- •10.1 Цель работы
- •10.2 Контрольные вопросы
- •10.3 Задание на лабораторную работу
- •11 Лабораторная работа № 5. Использование стека и подпрограмм. Организация передачи параметров через стек
- •11.1 Цель работы
- •11.2 Контрольные вопросы
- •11.3 Задание на лабораторную работу
- •12 Лабораторная работа № 6. Организация взаимодействия с устройствами компьютера. Использование портов
- •12.1 Цель работы
- •12.2 Контрольные вопросы
- •12.3 Задание на лабораторную работу
- •13 Содержание отчетов по лабораторным работам
- •14 Список рекомендуемой литературы
- •Приложение а (обязательное) Образец титульного листа отчета по лабораторной работе для студентов специальности 220301, обучающихся по основной программе
- •Приложение б (обязательное) Образец титульного листа отчета по лабораторной работе для студентов специальности 220301, обучающихся по ускоренной программе
- •Приложение в (обязательное) Образец титульного листа отчета по лабораторной работе для студентов направления 220300.62
12.2 Контрольные вопросы
1) Что такое порт?
2) Каким образом указывается, что обмен данными осуществляется через порт, а не через ячейку памяти с тем же адресом?
3) Что необходимо знать для управления устройствами с помощью портов?
4) Регистры какой размерности используются при работе с портами?
5) В каких программах возможно прямое управление устройствами в обход операционной системы?
6) Какие команды используются для обмена данными через порты?
12.3 Задание на лабораторную работу
1) Написать программу на языке ассемблера, которая позволяет получить звуковой сигнал, выдаваемый компьютером через свой внутренний динамик. Частота сигнала задается таймером.
1.1) В сегменте данных определить однобайтовую ячейку, в которой задать число повторений звукового сигнала.
1.2) В сегменте кода предварительно отключить возможность реагирования микропроцессора на прерывания командой CLI (для получения чистого звука).
1.3) Взаимодействие таймера и динамика осуществляется через порт 61H. В целях синхронизации таймера и динамика необходимо сначала отключить динамик от таймера, сбросив 0 нулевой бит порта 61H.
1.3) Подсоединить динамик к таймеру, установив нулевой бит порта 61H в единицу.
1.4) Включить звук, установив первый бит порта 61H в единицу.
1.5) Для выключения звука необходимо сбросить в 0 первый бит порта 61H и отключить динамик от таймера.
1.6) Включить возможность реагирования процессора на прерывания командой STI.
1.7) Организовать многократное звучание сигнала в соответствии с числом повторений, заданных в сегменте данных.
Примечание. Длительность звука можно задать, организовав между включением и отключением сигнала пустой цикл с определенным числом повторений, например, 100. При необходимости, длительность можно регулировать.
2) На основе исходной программы получить исполняемый файл. Выполнить программу по шагам с помощью отладчика TURBO DEBUGGER, описать изменение состояния регистров и ячеек памяти при выполнении программы. Обратить особое внимание на следующие моменты:
2.1) Какие операции используются для сброса и установки отдельных битов?
2.2) Какой регистр процессора используется в программе для взаимодействия с портом 61H?
13 Содержание отчетов по лабораторным работам
1) Титульный лист, оформленный в соответствии с приложениями А, Б или В.
2) Задание на лабораторную работу.
3) Ответы на контрольные вопросы.
4) Текст программы с пояснениями.
14 Список рекомендуемой литературы
Юров В.И. Assembler [Текст]/ В.И. Юров.- Учебник для вузов.- 2-е издание.- СПб.: Питер.- 2006.- 637 с.: ил.- ISBN: 5-94723-581-1
Юров В.И. Assembler. Практика [Текст]/ В.И. Юров.- Учебник для вузов.- 2-е издание.- СПб.- Питер.- 2006.- 399 с.: ил.- ISBN: 5-94723-671-0
Абель, П. Язык ассемблера для IBM PC и программирования [Текст]/П. Абель/ Пер. с англ. Ю.В. Сальникова.- М.: Высшая школа.-1992.-447 с., ил.
Приложение а (обязательное) Образец титульного листа отчета по лабораторной работе для студентов специальности 220301, обучающихся по основной программе
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИСТЕТ
Кафедра «Информационные системы»
ОТЧЕТ
по лабораторной работе № __
на тему: «___________________________________________________»
по дисциплине: «Вычислительные машины, системы и сети»
Выполнил(а) _________________________ Шифр ____________________
Факультет: НТиАП
Специальность: 220301 «Автоматизация технологических процессов и производств»
Группа: 21-АП
Проверил: ____________________
Отметка о зачете: ________ Дата: «____» _____________ 200_ г.
Орел, 200_ г.