Микропроцессоры и МПС. Лабораторные работы №9-10

Практическая работа №9-10
Команды пересылки данных

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

Пояснения к работе

IN - ввод байта или слова. Признаки не меняются. Команда: in accumulator,port. Логика : accumulator = (port). IN передает байт или слово из заданного порта port в AL или AX. Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.
Примечания : Следует указать на то, что аппаратная часть не использует порты от F8h до FFh для ввода/вывода, поскольку они зарезервированы для контроля за внешним процессором и для других возможных расширений процессора в будущем.
MOV - пересылка (байта или слова). Признаки не меняются. Команда: MOV destination, source. Логика: destination = source . MOV пересылает по адресу destination байт или слово, находящееся по адресу source.
OUT - загрузка в порт. Признаки не меняются. Команда: OUT port,accumulator. Логика : (port) = accumulator. OUT передает байт или слово из AL или AX в заданный порт. Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.
Примечания : Следует указать на то, что аппаратная часть не использует порты от F8h до FFh для ввода/вывода, поскольку они зарезервированы для контроля за внешним процессором и для других возможных расширений процессора в будущем.
POP - выборка слова из стека. Признаки не меняются. Команда: POP destination. Логика : destination = (SP) SP = SP + 2. Команда POP пересылает слово из верхушки стека по адресу destination, затем увеличивает указатель стека SP на 2, чтобы он указывал на новую верхушку стека.
PUSH - загрузка слова в стек. Признаки не меняются. Команда: PUSH source. Логика : SP = SP – 2 (SP) = source. Команда PUSH уменьшает значение указателя стека SP на 2, затем пересылает операнд в новую верхушку стека. Операндом source не может быть 8-битный регистр.
Примечание : Даже если source указывает на байт, в стек пересылается целое слово.
XLAT - кодирование AL по таблице. Признаки не меняются. Команда: XLAT translate-table . Логика: AL = (BX + AL) . Команда XLAT переводит байт, согласно таблице преобразований. Указатель 256-байтовой таблицы преобразований находится в BX. Байт, который нужно перевести, расположен в AL. После выполнения команды XLAT байт в AL, заменяется на байт, смещенный на AL байтов от начала таблицы преобразований.
Примечания: Таблица преобразований может содержать менее 256 байтов. Операнд, т.е. translate-table, является необязательным, поскольку указатель таблицы должен быть загружен в BX еще до начала выполнения команды.

Задания

Задание 1. Из таблицы, которая находится в памяти по адресу 30h, выбрать старшую часть коэффициента деления для канала 2 таймера (младшая часть равна 0). Передать в порт по адресу 43h число B6h, потом в порт по адресу 42h коэффициент деления (обе части). Получить состояние порта по адресу 61h, сохранить его в стэке, два младших бита установить в 1 и передать назад. Сделать паузу. Вытянуть из стэка данные и передать их в порт по адресу 61h.
Рекомендованный алгоритм выполнения задания:





























Код программы:
NOP
NOP
MOV BX,0020
MOV AL,[BX]
MOV BX,0030
XLAT
MOV DX,0043
MOV AH,AL
MOV AL,B6
OUT DX,AL
MOV DX,0042
MOV AL,00
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,0061
IN AX,DX
PUSH AX
OR AX,0003
OUT DX,AX
POP AX
OUT DX,AX
NOP
NOP

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

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

Запишите в тетрадь ход выполнения лабораторной работы.
Ответьте письменно на контрольные вопросы.

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

Запишите структуру регистров общего назначения.
Охарактеризуйте команды пересылки данных.


Начало

Заполнение таблицы коэффициентов таймера по адресу 30h

Выбор по таблице коэффициента деления для второго канала таймера

Передача в порт по адресу 43h числа B6h и в порт 42h коэффициента деления

Получение состояния порта по адресу 61h, сохранение его в стэке, установление двух младших бит и передача назад

Задержка

Извлечение из стэка данных и передача их в порт по адресу 61h

Конец



HYPER15Основной шрифт абзаца

Приложенные файлы

  • doc prac 9-10
    Размер файла: 46 kB Загрузок: 0