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

Регистры адреса

ÀnРегистры адреса главным образом используются для получения адреса операнда выполняемой команды. Большая часть операций манипулирования данными не может выполняться с помощью адресных регистров. В адресных регистрах операции с байтами не разрешены.

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

MOVE.W #$1234,A0

в регистр А0 запишет число $00001234, а команда

MOVE.W #$8234,A0

в регистр А0 запишет число $FFFF8234.

Здесь знак # является признаком непосредственного операнда, а знак $ - признаком шестнадцатеричного числа.

Как показано на рис.1.1 в набор регистров входят девять регистров адреса, два из которых используются как указатели стека: указатель стека супервизора (SSP-Supervisor Stack Pointer) и пользовательский указатель стека (USP-User Stack Pointer). Естественно, что в каждый момент времени процессор имеет доступ только к одному из регистров стека в зависимости от режима, в котором находится процессор. Таким образом адресный регистр А7 физически представляет собой два независимых регистра. В программах на ассемблере он может указываться как A7 и как SP. Процессор автоматически формирует указатель стека при вызове подпрограмм и возврате из них, а также при обработке прерываний.

Программный счетчик рс (Program Counter)

Как и любой другой МП, МС68000 имеет в своем наборе регистров программный счетчик РС.

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

Несмотря на то, что счетчик команд и адресные регистры MC68000 32-разрядные, при обращениях к памяти на внешнюю адресную шину передаются только 24 младших бита адреса. По этой причине обеспечивается доступ только к 224(16M) байт памяти. Последующие модификации процессора МС68020, МС68030 и 68040 имеют 32-разрядную адресную шину и способны адресовать 4Г байт.

Регистр состояния sr (Status Register)

16-разрядный регистр состояния содержит системный (старший) и пользовательский (младший) байты. Системный байт содержит функции управления процессором, причем он доступен только в режиме супервизора. В пользовательском байте записан код состояния. Этот байт доступен как в режиме супервизора, так и в пользовательском режиме. Назначение разрядов регистра SR представлено на рис.1.2.

Рис.1.2. Назначение разрядов регистра состояния SR.

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

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

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

Флаг нуля (Z) сигнализирует о получении нулевого результата операции.

Флаг знака (N) дублирует значение старшего бита результата, который, при использовании дополнительного кода, соответствует знаку числа.

Флаг расширения (Х) устанавливается так же, как и флаг переноса, но в отличие от него на него не влияют команды перемещения данных, сравнения и логическими команды. Этот флаг предназначен для упрощения программирования высокоточной арифметики (с удвоенной разрядностью).

Оставшиеся 3 бита (7,6 и 5) не используются и всегда имеют нулевые значения.

Старший байт регистра состояния (системный байт) может быть изменен только с помощью определенных команд в режиме супервизора. Биты 11, 12 и 14 регистра состояния не используются.

Остальные биты обслуживают специальные функции управления процессором. Маска прерываний (I2,I1,I0) запрещает процессору реагировать на запрос прерывания, если уровень запроса не превышает кода маски.

Если уровень приоритета запроса прерываний выше , чем приоритет процессора, записанного в маске, то процессор воспринимает прерывание и начинает его обработку. В противном случае процессор продолжает выполнение программы. Значения уровня запроса прерывания от 1 до 6 вызывают "нормальные" прерывания, причем уровень 6 соответствует высшему приоритету. Значения уровней запроса прерывания 0 и 7 являются особыми:

- уровень прерываний, равный 0, никогда не превысит приоритет процессора и поэтому используется для указания отсутствия прерываний, ожидающих обслуживания;

- при уровне прерываний, равным 7, прерывание происходит, даже если приоритет процессора также равен 7. Поэтому уровень запроса прерывания 7 не может маскироваться.

Бит трассировки (Т) устанавливает пошаговый режим работы микропроцессора. При установке бита Т в "1" автоматически генерируется сигнал внутреннего прерывания после выполнения каждой команды. Этот режим используется при отладке программ и в обучающих системах.

Бит супервизора (S) устанавливает привилегированный режим работы процессора, или режим супервизора. Режим супервизора, при котором могут выполнятся все команды процессора, обычно используется операционной системой. Выполнение привилегированных команд (STOP, RESET, RTE и др.) в пользовательском режиме вызывает возникновение специального прерывания с вектором 8. Это предотвращает изменение действующих функций управления процессором пользовательской программой и, таким образом, защищает систему в мультипрограммной среде.

При запуске или перезапуске процессор автоматически устанавливается в режим супервизора. Переход в пользовательский режим осуществляется сбросом бита S. Вернуться в режим супервизора можно только при возникновении исключительной ситуации (рассматривается в лабораторной работе "Обработка исключительных ситуаций").

Соседние файлы в папке Motorola - Описание лаб