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

7.2. Особенности программирования при выполнении работы

В лабораторном макете линии управления исполнительным механизмом подключены к нулевому и первому разряду регистра выходного порта LPT-1, имеющего адрес равный базовому адресу порта. Релейный датчик положения ИМ подключен к третьему разряду входного регистра порта имеющего адрес равный базовый+1. Значение остальных битов порта не определено. Для работы ИМ в порт с адресом базовый+2 необходимо вывести 3. Операционная система помещает базовый адрес порта в ячейку $408 (408Н) оперативной памяти. Для извлечения базового адреса необходимо считать содержимое этой ячейки, предварительно записав в дополнительный сегмент данных ES число 0, затем прочитать адрес, используя метод адресации с указанием префикса ES.

При написании программ на языке ПАСКАЛЬ возможно использование программных вставок, написанных языке АССЕМБЛЕР. Такая вставка начинается командой (директивой) транслятора asm , за которой следует тело программы. Программа вставки завершается командой end. Внутри вставок Ассемблер использует переменные Паскаля. Управляющая программа составляется на языке Pascal с максимально возможным количеством вставок на языке Assembler.

7.3. Задание

  1. Написать на языке ПАСКАЛЬ с использованием вставок на языке АССЕМБЛЕР программу управления перемещением ИМ с клавиатуры ЭВМ.

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

7.4. Порядок выполнения работы

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

  2. Написать на Паскале разделы программы с описанием модулей, меток, констант и переменных типа байт и целое. Использовать модули Паскаля Crt, Dos.

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

  4. Определить базовый адрес порта.

  5. Написать на Паскале далее в основном теле программы блок опроса клавиатуры и вывода в выходной порт команд управления, оформив команды управления в виде процедуры Паскаля.

  6. Проверить работу программы.

  7. Написать процедуру вывода команды управления на языке Паскаль с Ассемблерной вставкой.

  8. Проверить работу программы.

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

  10. Составить программу, реализующую релейный закон управления положением ИМ при использовании дискретного датчика.

  11. Проверить работу программы.

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

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

  1. Перечислите регистры процессора и их назначение.

  2. Какие методы адресации используется в работе?

  3. Как определить адрес порта ввода/вывода LPT1?

  4. Укажите форматы команд ввода/вывода

  5. Для чего используется префикс?

  6. Как выполняются условные и безусловные переходы?

7.6. Приложение

7.6.1. Формат кодирования

Основной формат кодирования команд Ассемблера имеет вид:

[Метка] команда [операнд(ы)]

Метка (если она имеется), команда и операнд (если он имеется), разделяются по крайней мере одним пробелом или знаком табуляции. Первым символом метки должна быть буква. Метка заканчивается двоеточием. Комментарии отделяются от команды точкой с запятой.

7.6.2. Особенности представления данных.

Ассемблер воспринимает данные как десятичные числа. Десятичные числа можно обозначать последней буквой D . Например, 23D. В шестнадцатеричном формате число должно начинаться символом “$” или обозначаться в конце буквой H. Например, $2E, 2ЕН, 0FEH. Двоичный формат обозначается в конце цифры буквой В.

Ассемблер сам определяет тип данных. Для прямого указания Ассемблеру на тип данных ( и соответственно, размещение данных в памяти) используется директива ptr , перед операндом. Формат директивы: Тип данных ptr. Например, Word ptr – представление данных в одно слово (2 байта).

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