Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 2.doc
Скачиваний:
16
Добавлен:
16.04.2013
Размер:
265.73 Кб
Скачать

Лабораторная работа N2. 25

Однокристальная микроЭВМ МС68НС05С8.

Лабораторный практикум.

Лабораторная работа n2.

Внутренняя архитектура.

Методы адресации.

Команды пересылки данных.

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

1. Теоретическая часть.

В данной работе изучаются:

Ÿвнутренняя архитектура (набор регистров, встроенная память);

Ÿметоды адресации MC68HC05;

·группа команд пересылки данных;

·группа команд передачи управления.

Микропроцессор MC68HC05 относится к семейству высокопроизводительных восьмибитовых микроконтроллеров невысокой стоимости. Все микроконтроллеры этого семейства используют весьма распространенный микропроцессор M68HC05 и применяются в самых различных областях. Рассмотрим архитектуру центрального процессора (в дальнейшем - ЦП) и структуру памяти ОЭВМ более подробно.

1.1 Центральный процессор.

Центральный процессор содержит пять программно (или косвенно) доступных регистров, структура которых представлена на рисунке 1:

Регистры

Рис. 1. Регистры ЦП.

АККУМУЛЯТОР(А)- это восьмибитовый регистр общего назначения, в котором хранятся операнды, результаты арифметических и логических операций, а также данные, с которыми производятся какие-либо другие действия.

ИНДЕКСНЫЙ РЕГИСТР (X) - используется в качестве смещения при индексном режиме адресации либо как дополнительный аккумулятор. Этот регистр можно загрузить как непосредственно, так и из памяти; значение, находящееся в нем можно сохранить в ячейке памяти или сравнить с ее содержимым.

ПРОГРАММНЫЙ СЧЕТЧИК (PC) - это шестнадцатиразрядный регистр, в котором используются только тринадцать младших битов (старшие три бита ВСЕГДА РАВНЫ НУЛЮ), содержащий адрес команды, следующей за выполняемой или адрес операнда, входящего в код программы. Адресная шина ОЭВМ MC68HC705C9P1 имеет разрядность в тринадцать бит, что позволяет адресовать до восьми килобайт памяти. Этот регистр НЕ ДОСТУПЕН непосредственно из программы.

УКАЗАТЕЛЬ СТЕКА (SP) - этот регистр также имеет разрядность в тринадцать бит (как и программный счетчик), он содержит адрес следующей свободной ячейки стека. Во время начальной установки или при выполнении командыRSP ("сброс указателя стека") в регистр записывается значение$00FF. Далее, по мере заполнения стека, адрес, содержащийся в регистре, уменьшается. При обращении к памяти семь старших бит ВСЕГДА имеют значение%0000011, что обуславливает расположение стека в диапазоне адресов от$00C0до$00FF, т.е.64 байта. Следует обратить внимание на то, что при полном заполнении стека, указатель автоматически устанавливается в значение$00FF и записанная ранее информация ТЕРЯЕТСЯ. Вызов подпрограммы требует двух ячеек стека, обработка прерывания - пять. Если в программе большой уровень вложенности подпрограмм, то в начале работы программы надо использовать командуRSP (см. ниже).

РЕГИСТР ФЛАГОВ (CCR) - содержит пять флагов, которые изменяются в зависимости от выполнения текущей команды. Рассмотрим назначение флагов более подробно.

Флаг

· ПОЛУПЕРЕНОСА (H):

устанавливается в единицу при возникновении переноса из бита с номером три в четвертый бит. Флаг используется для операций с числами в двоично-десятичном виде и изменяется командами сложения (ADD) и сложения с переносом (ADC);

· РАЗРЕШЕНИЯ ПРЕРЫВАНИЙ (I)

при установленном в единицу бите запрещаются все маскируемые прерывания. Флаг устанавливается автоматически при возникновении любого прерывания сразу после сохранения регистров в стеке, но до передачи управления по вектору прерывания. Если при установленном бите Iвозникает внешнее прерывание, то оно запоминается и обрабатывается сразу после сброса бита. По окончании обслуживания программного прерывания командойRTI восстанавливается содержимое регистровPC,X, A иCCR (в обратном порядке). Этот бит можно изменить программно;

·ОТРИЦАТЕЛЬНОГО РЕЗУЛЬТАТА (N)

устанавливается в единицу, если результат последней операции был отрицательным числом и сбрасывается в обратном случае;

·НУЛЕВОГО РЕЗУЛЬТАТА (Z)

флаг устанавливается в единицу, если результатом последней операции был нуль, в противоположном случае он сбрасывается;

·ПЕРЕНОСА (C)

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

Соседние файлы в папке Lab_moto