Память данных

Таблица распределения памяти программ

Память программ.

Счетчик команд СК и регистр состояния программы PSW.

В состав процессора входят также счетчик команд (СК) и регистр состояния программы (PSW).

Счетчик команд предназначен для формирования текущего адреса местонахождения команды в памяти программ.

Разрядность счетчика команд равна 12. Счетчик команд всегда хранит адрес обращения к памяти программ и позволяет адресоваться к 4 килобайтам памяти программ (212=4096).

МК48 имеет особенность адресации памяти программ, связанную с тем, что все доступное адресное пространство разбито на два банка: банк 0 и банк 1. Адресное поле банка 0=000Н-7FFH, банка 1=800H-FFFH. Выбор соответствующего банка памяти программ производится по командам:

SEL MB0 - выбор банка 0

SEL MB1 – выбор банка 1.

При этом происходит занесение 0 или 1 в старший разряд счетчика команд.

Регистр состояния программы (PSW) предназначен для хранения данных о состоянии МК48. Формат регистра PSW имеет вид:

               
C AC F0 BS   S2 S1 S0

C – бит переноса, указывающий на переполнение аккумулятора после предыдущей операции.

AC – бит полу переноса (перенос из 3 разряда в 4), используется в команде DA A.

F0 – флаг пользователя, используется по команде условного перехода.

BS – бит выбора банков регистров общего назначения. Смотри раздел “Память данных”.

S2, S1, S0 – указатель стека. 3-хразрядное двоичное число, указывающее адрес вершины стека. Организации стека посвящен специальный раздел.

Существует команда MOV A, PSW, по которой содержимое PSW пересылается в аккумулятор. Так как с числом в аккумуляторе можно проделывать любые модификации, то любой бит регистра PSW можно модифицировать. Модифицированное в аккумуляторе значение регистра PSW возвращается обратно по команде MOV PSW,A.

Память программ предназначена для хранения и считывания команд. Общий объем адресуемой памяти программ 4 кбайта. Но в зависимости от типа МК-48 память программ разделена на внутреннюю или резидентную (РПП) объемом 1кбайт или 2кбайта и внешнюю (ВПП), составляющую в сумме с резидентной памятью – 4кбайта. Если внутренней памяти программ достаточно, то внешняя память может не использоваться вообще.

Диапрзон адресов отдельных областей памяти Содержание областей памяти
В десятичном виде В шестнадцатеричном виде
  FFFH Внешняя память программ для 1816ВЕ49. Банк МВ1
  800H
  7FFH Внешняя память программ для 1816ВЕ48,1830ВЕ48. Внутренняя память программ для 1816ВЕ49. Отсюда и ниже – Банк МВ0.
  400H
  3FFH Отсюда и ниже – внутреняя память программ для 1816ВЕ48,1830ВЕ48,1816ВЕ49.
  7H Вектор прерывания от таймера – счетчика
  3H Вектор внешнего прерывания
  0H Адрес начальной установки

Микросхемы 1816ВЕ35,1816ВЕ39,1830ВЕ35 вообще не имеют внутренней памяти программ и могут использоваться только с внешней памятью программ. Следует напомнить, что переключение памяти программ с одного банка на другой осуществляется командами SEL MB0, SEL MB1. При этом старший разряд счетчика команд устанавливается или сбрасывается по первой команде JMP или CALL, следующей за командой SEL MB0 или SEL MB1.

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

Адрес 0 – адрес, по которому выполняется первая выборка команды после сброса, т.е. по этому адресу расположена первая команда программы.

Адрес 03 - начальный адрес подпрограммы, вызываемой по сигналу внешнего прерывания INT, если прерывание разрешено.

Адрес 07 – начальный адрес подпрограммы, вызываемой по переполнению внутреннего таймера – счетчика(прерывание от таймера - счетчика), если это прерывание разрешено.

Таким образом, МК48 имеет два вида прерываний и для каждого вида прерываний имеется свой вектор, т.е. адрес в памяти программ, где располагается начальная команда программы обработки прерывания. В связи с этим структура программы на языке Ассемблера выглядит так (если оба прерывания используются):

Адрес Команда Комментарии

0000H JMP START Переход на начало основной программы

0003H Подпрограмма

обработки

прерывания по

входу INT

0007H Подпрограмма

обработки

прерывания по T\C

START: Основная программа

Память данных предназначена для записи, хранения и считывания данных, получаемых в процессе обработки информации. Память данных может быть внутренней (резидентной) (РПД) или внешней (ВПД).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: