Program Counter) – 16-разрядный регистр, содержит адрес текущей команды выполняемой программы либо адрес операнда, используемого в текущей команде. При естественном ходе выборки команд, последовательно размещенных в памяти программ, содержимое счетчика увеличивается от команды к команде на число, равное количеству ячеек, занимаемых в памяти выполненной командой.
Регистр-указатель данных DPTR (Data Pointer) – 16-разрядный регистр (DPH – старший байт, DPL – младший байт). Основное назначение регистра DPTR – участи в формировании адреса при чтении данных (констант) из области памяти программ, а также при обмене с внешней памятью данных. Система команд МК51 предусматривает возможность обращения к отдельным байтам (DPH или DPL) регистра DPTR, что позволяет использовать эти регистры для хранения промежуточных результатов вычислений или как источник одного из операндов, указывая во втором байте команды абсолютный адрес DPH или DPL.
Аккумулятор (A-регистр) – 8-разрядный регистр, в котором хранятся операнды, результаты арифметических и логических операций. Это наиболее часто используемый регистр в программах.
Регистр B– дополнительный 8-разрядный регистр. Используется в операциях умножения и деления. В других командах может интерпретироваться как регистр общего назначения, его абсолютный адрес указывается во втором байте команды.
Указатель стека SP (Stack Pointer) – 8-разрядный регистр, содержит адрес верхушки стека. Архитектура МК51 предполагает размещение стековой памяти только в области внутренней внутренней памяти данных. Стек используется при вызове и возврате из подпрограмм, а также для временного хранения данных.
Регистр слова состояния программы (регистр состояния) PSW (Program Status Word) – 8-разрядный регистр для хранения битов признаков (флагов), которые отражают особенности выполнения операций в процессоре. Эти флаги имеют символические имена и расположены в определенных разрядах регистра PSW, как показано на рис. 1.2.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Разряды |
C |
AC |
F0 |
RS1 |
RS0 |
OV |
- |
P |
C (Carry) – флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифметических и логических операций.
AC (Auxiliary Carry) – флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в 3-м разряде аккумулятора.
F0 – флаг пользователя. Назначается пользователем по желанию. Может быть установлен, сброшен или проверен программой.
RS1, RS0 – биты выбора банка регистров. Устанавливаются и сбрасываются программой для выбора рабочего (текущего) банка регистров. Соответствие значений битов RS1, RS0 и выбранного банка регистров приведено в табл. 1.1.
Таблица 1.1
Выбор банка регистров
RS1 |
RS0 |
Номер банка |
0 |
0 |
Банк 0 |
0 |
1 |
Банк 1 |
1 |
0 |
Банк 2 |
1 |
1 |
Банк 3 |
OV (Over) – флаг переполнения. Устанавливается и сбрасывается аппаратурно при выполнении арифметических операций.
P (Parity) – флаг паритета. Устанавливается и сбрасывается аппаратурно. P = 1, если число единиц в аккумуляторе нечетное. P = 0, если число единиц в аккумуляторе четное или его содержимое нулевое. Таким образом, флаг паритета выполняет контроль четности содержимого аккумулятора.
1-й бит регистра PSW, т.е. PSW.1 не используется.
28. Память программ и данных МК8051.
Модель памяти МК представляет собой упорядоченную и пронумерованную последовательность 8-разрядных регистров – ячеек памяти. 8-разрядное двоичное слово, хранимое в ячейке памяти, называется байтом, а отдельный разряд слова – битом. Номер ячейки памяти является ее адресом. Для нумерации адресов памяти используется шестнадцатиричная система счисления с цифрами 0, 1, …, 9, A, B, C, D, E, F. Каждый байт может быть представлен двумя полубайтами (старшей и младшей тетрадами бит), значения которых однозначно кодируются указанными 16-разрядными цифрами.
Примем, что над каждой ячейкой модели памяти может быть выполнена пара операций: запись байта в ячейку и чтение содержимого. Память такого типа называют запоминающим устройством с произвольной выборкой или, чаще, оперативным запоминающим устройством (ОЗУ) (оперативной памятью). В МК51 внутреннее ОЗУ состоит из двух областей: 128 ячеек памяти данных с адресами 00H…7FH и области регистров специальных функций, занимающих адреса 80H…FFH. Распределение пространства внутреннего ОЗУ показано на рис. 1.3. Физически память данных и область регистров специальных функций являются отдельными устройствами.
Все ячейки внутренней памяти данных могут адресоваться с использованием прямой и косвенной адресации. Кроме того, память данных имеет следующие особенности.
Младшие 32 ячейки памяти данных (адреса 00H…1FH) сгруппированы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.