Команды управления, переходов и работы с подпрограммами, ввода и вывода

Разработка программы с использованием команд управления, переходов, работы с подпрограммами, ввода и вывода. Безусловный переход к подпрограмме с помощью команды "Рестарт". Изменение значения триггера переноса. Управление прерывания, пустая операция.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 07.11.2012
Размер файла 592,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерства Просвещения Республики Молдова

Международный Независимый Университет Молдовы

Факультет Информатики и Инженерии

Кафедра Информационных Технологии и Компьютеров

ОТЧЕТ

по лабораторной работе №4

дисциплина: Микропроцессоры

Команды управления, переходов и работы с подпрограммами, ввода и вывода.

студент группы C-32: Чеботов А.

Проверил

Лектор универ: Дергач О.

Кишинёв 2012

Содержание

  • 1. Команды управления
  • 1.1 Рестарт (повторный запуск)
  • 1.2 Изменение
  • 1.3 Управление прерываниями
  • 1.4 Двоично-десятичная коррекция
  • 1.5 Пустая операция
  • 1.6. Останов
  • 2. Команды перехода и работы с подпрограммами
  • 2.1 Команды перехода
  • 2.2 Команды вызова подпрограмм и возврата из подпрограмм
  • 3. Команды ввода/вывода
  • 3.1 Ввод данных из входного порта
  • 3.2 Вывод данных в входной порт

1. Команды управления

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

1.1 Рестарт (повторный запуск)

Эта команда обеспечивает безусловный переход к подпрограмме, начальный адрес которой задается с помощью разрядов 3-5 команды. Команда рестарт может быть подана внешним прерывающим устройством в ответ на сигнал разрешения прерывания, а так же может присутствовать в программе. По этой команде управление передается одной из восьми подпрограмм с векторами (указателями областей памяти): 0000, 0008, 0010, 0018, 0020, 0028, 0030, 0038 Н.

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

Команда выполняется за три машинных цикла (11 тактов). Значения триггеров признаков не изменяются.

1.2 Изменение

а) установка переноса

б) дополнение переноса

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

1.3 Управление прерываниями

а) разрешение прерывания

б) блокировка прерываний

Команды этой группы позволяют программно защитить от прерываний некоторые участки программы. С помощью этих команд производится установка (а) или сброс (б) триггера прерываний INTE МП. Если прерывания запрещены, то МП не будет реагировать на сигналы запроса прерываний до тех пор, пока программно этот запрет не будет снят с помощью команды EI. Если прерывания разрешены, то с приходом сигнала запроса на прерывание триггера INTE автоматически сбросится при переходе к прерывающей программе и установить его можно лишь командой EI. Это делается обычно на том этапе выполнения подпрограммы обслуживания прерывания, когда уже могут быть разрешены другие прерывания.

Каждая команда выполняется за один машинный цикл (4 такта). Значения триггеров признаков при этом не изменяются.

1.4 Двоично-десятичная коррекция

С помощью этой команды производится коррекция содержимого аккумулятора, которое получено в результате арифметического сложения двоично-десятичных чисел на предыдущем шаге выполнения программы. Коррекция заключается в прибавлении числа 0110 В к каждой двоичной тетраде 8-разрядного числа, записанного в аккумулятор, и производится в том случае, если число в тетраде не меньше 10, или имел место перенос из этой тетрады, или число в старшей тетраде равно 9 и был перенос из младшей тетрады (полуперенос).

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

1.5 Пустая операция

Эта команда ничего не изменяет, кроме того, что содержимое программного счетчика увеличивает на единицу. Команда выполняется за один цикл (4 такта) и используется для организации временных задержек в программе, а также резервирования места, чтобы можно было вносить изменения в отдельные участки программы без изменения адресов остальных команд.

1.6. Останов

Эта команда вызывает прекращение выполнения программы и переводит МП в состояние останова. При этом ША и ШД переводятся в высокоимпедансное состояние, а на линии ожидания (WAIT) устанавливается высокий уровень. В этом состоянии МП может находится в течение любого временного интервала. Из состояния останова МП можно вывести двумя способами:

· подачей сигнала сброса на вход RESET, при котором выполнение программы начинается с адреса 0000 Н;

· подачей сигнала на вход прерывания INT. При этом триггер разрешения прерывания должен быть установлен; в противном случае INTE=0 единственным способом запуска оказывается сигнал RESET.

команда программа подпрограмма прерывание

2. Команды перехода и работы с подпрограммами

Команды этой группы позволяют изменять последовательность выполнения команд программы. Существуют два способа изменения этой последовательности. Первый из них называется безусловным. Согласно этому способу последовательность выполнения программы подвергается изменению всякий раз, когда реализуется определенная команда. В соответствие со вторым способом последовательность выполнения программы определяется некоторыми условиями, то есть изменяется только в том случае, когда значение указанного условия совпадает с заданным.

Команды перехода и вызова подпрограмм являются одной из составных частей процесса принятия решения. В результате выполнения команд арифметической и логической обработки данных вырабатываются значения признаков в регистре состояния. Команды перехода и вызова подпрограмм проверяют значения разрядов регистра признаков (состояния) и определяют последующий ход выполнения программ в зависимости от результата проверки.

Команды перехода, называемые также командами ветвления, позволяют организовать в программах циклы и разветвления.

Команды вызова подпрограмм дают возможность сократить объем разрабатываемых программ за счет повторного использования подпрограмм. Наличие в МП стека с указателем стека делает возможным возврат в главную программу после выполнения подпрограммы.

Ни одна из команд перехода и вызова подпрограммы не изменяет состояние регистра признаков.

2.1 Команды перехода

Эти команды занимают в оперативной памяти 3 байта и выполняются за три машинных цикла (10 тактов). Во всех этих командах применяется прямая адресация. Команды делятся на 2 группы:

1) 1 команда безусловного перехода

2) 8 команд с условным переходом

При выполнении команды безусловного перехода изменяется содержимое счетчика команд РС. Содержимое второго и третьего байтов команды перехода пересылается автоматически в счетчик команд во время фазы выполнения. Тогда при очередном цикле выборки МП извлекает команду из области памяти, на которую указывает 2-й и 3-й байты команды перехода. Таким образом, происходит переход в другую точку программы. Теперь выполняются одна за другой команды новой последовательности. Это продолжается до тех пор, пока не будет опять выполнена команда перехода.

а) переход безусловный

После этой команды выполнение программ продолжается с новой исходной точки, то есть с адреса, содержащегося в байтах В2 и В3 команды перехода.

б) переход условный

(РС) < <В3><В2>, если проверяемое условие выполняется; в противном случае РС < (РС) +3, то есть выполняется следующая команда после команды условного перехода.

Значение разрядов ССС команда выбирает в зависимости от проверяемого условия. В МП К580 имеется возможность делать переход в зависимости от результата проверки следующих условий:

Таблица 1. Условие для значения разряда ССС

2.2 Команды вызова подпрограмм и возврата из подпрограмм

С помощью команд перехода последовательность выполнения команд программы может быть изменена путем перехода к новой последовательности. Однако команда перехода сама по себе не позволяет вернуться в то место главной программы, откуда был осуществлен переход. Это можно легко сделать с помощью команды вызова подпрограммы. Подпрограмма представляет собой фрагмент программы, обращение к которой может иметь место в любой точке главной программы. Когда происходит вызов подпрограммы, то в начале своего выполнения она реализует действия по запоминанию текущего содержимого счетчика команд (точка возврата). Когда выполнение подпрограммы заканчивается, то с помощью команды возврата микропроцессору указывается, что исходное содержимое счетчика команд должно быть извлечено из памяти. Этой информации микропроцессору достаточно, чтобы осуществить возврат в прерванную последовательность команд главной программы. Для запоминания точки возврата используется стек, куда записывается адрес команды, следующей за командой вызова подпрограммы.

Команда данной группы не изменяют содержимого регистра признаков.

а) вызов подпрограммы безусловный

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

б) условный вызов программы

Переход к программе происходит только в том случае, если выполняется проверяемое условие. При этом [SP-1] [SP-2] < (PC); SP < (SP) - 2; PC < <B3><B2>.

В этом случае команда выполняется за пять циклов (17 тактов).

Если проверяемое условие не выполняется, то переход к подпрограмме не происходит и выполняется следующая команда программы с адресом РС= (РС) +3. В этом случае команда выполняется за три цикла (11 тактов).

Значение разрядов ССС выбирается в зависимости от проверяемого условия:

Таблица 2. Условие для значения разрядов ССС

в) возврат из подпрограммы безусловный

Команда выполняется за три машинных цикла (10 тактов).

г) возврат из подпрограммы условный

Если проверяемое условие выполняется, то РС < [SP] [SP-1]; SP < (SP) =2 и происходит выход из подпрограммы в точку, адрес которой записан в стеке. В этом случае команда выполняется за три машинных цикла (11 тактов). Если это условие не выполняется, возврата не происходит и выполняется следующая команда подпрограммы, то есть РС= (РС) +1.

В этом случае команда выполняется в течение одного машинного цикла (5 тактов).

Значение разрядов ССС команды определяется проверяемым условием:

Таблица 3. Условие для значения разрядов ССС

При выполнении команд возврата (в и г) МП извлекает из стека значение программного счетчика, при котором произошел переход из программы предыдущего уровня, и загружает это значение в счетчик команд. Команде "возврат из подпрограммы" ничего не сообщает относительно того, какого уровня вложения выполняется подпрограмма и сколько раз происходил вызов этой подпрограммы. Выполняя эту команду, МП просто возвращается к тому значению программного счетчика, которое было последним загружено в стек.

3. Команды ввода/вывода

Эти команды обеспечивают передачу данных между аккумулятором МП и внешним устройством, 8-ми разрядный адрес которого приводится во втором байте команды. Таким образом, с помощью команд ввода/вывода можно передавать данные к 256=28 портам вывода и принимать данные от 256 портов ввода.

После того как команда будет выполнена полностью, адрес внешнего устройства передается из МП на ША по восьми младшим линиям и таким образом обеспечивает передачу данных между МП и адресуемым внешним устройствам. Следует иметь в виду, что 8-разрядный адрес внешнего устройства дублируется и передается также по восьми старшим линиям ША.

Команды выполняются за три машинных цикла (10 тактов). При выполнении команд значения триггеров признаков не изменяются.

3.1 Ввод данных из входного порта

3.2 Вывод данных в входной порт

Размещено на Allbest.ru


Подобные документы

  • Основные виды загрузки. Приемы работы в ТР: процесс отладки. Команды редактирования отладки программ с помощью командного меню Pascal. Составление программы с использованием простых операторов ввода, вывода. Сравнения с текстовыми и числовыми условиями.

    отчет по практике [134,7 K], добавлен 02.09.2010

  • Изучение подсистемы ввода-вывода и файловой системы ОС семейства Windows NT. Анализ особенностей работы приложения TotalCommander и его взаимодействия с файловой системой и подсистемой ввода-вывода. Взаимодействие TotalCommander с сетевыми адаптерами.

    лабораторная работа [1,1 M], добавлен 12.06.2012

  • Классификация периферийных устройств ввода и вывода данных для обмена информацией между компьютером и внешним миром. Системы распознавания магнитных знаков, символов. Принцип работы мониторов и принтеров. Вид манипуляторов для управления курсором.

    реферат [272,7 K], добавлен 01.04.2014

  • Файлы IO.SYS и MSDOS.SYS; командный процессор DOS. Базовая система ввода-вывода, загрузчик, диалог пользователя с DOS, команды. Недостатки языка програмирования с++. Создание и описание программы, позволяющей работать с файлами в среде DOS, ее алгоритм.

    курсовая работа [24,4 K], добавлен 02.12.2009

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

    лабораторная работа [40,4 K], добавлен 06.07.2009

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

    курсовая работа [1,7 M], добавлен 25.12.2011

  • Организация и назначение консольного ввода-вывода, необходимые для этого функции и их применение. Библиотеки, организующие функционирование потокового ввода-вывода, выполняемые операции. Арифметические операции и математические функции в среде С++.

    лабораторная работа [33,8 K], добавлен 15.07.2009

  • Схема и программное обеспечение модуля генератора последовательностей на шине ISA IBM PС AT. Операция "Запись в 16-и разрядное устройство ввода-вывода". Использование триггера для хранения информации в селекторе адреса. Увеличения разрядности счетчика.

    контрольная работа [363,3 K], добавлен 05.01.2013

  • Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Введение в API-программирование. Структура API-программ. Организация ввода-вывода в консольном приложении Windows. Организация низкоуровнего консольного ввода-вывода. Расширенная поддержка клавиатуры в консоли. Поддержка работы с мышью в консоли.

    курсовая работа [91,0 K], добавлен 10.02.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.