Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по МПС.doc
Скачиваний:
32
Добавлен:
26.11.2019
Размер:
3.25 Mб
Скачать

2.3. Формат слова состояния

2.4. Условия логических переходов

С – перенос;

АСС – дополнительный перенос;

BIT TEST – проверка наличия «1» в заданном разряде аккумулятора JB0 JB7;

T0,T1 – признаки наличия сигналов на входах T0,T1;

INT – сигнал на входе запроса прерывания даже если прерывания запрещены, можно выполнить условный переход;

F0,F1 – признаки , назначение которых функционально не определено, но программно это значение может быть установлено командами.

CLR F0 – сбросить F0;

CPL F0 – инвертировать F0; (аналогично для F1)

TF – признак переполнения таймер счетчика;

2.5. Память программ (пп)

ПП и ПД в МК 48 физически и логически разделены ПП реализована в резидентном ПЗУ емкость 1 Кбайт. Максимальное адресное пространство, отводимое для программ, составляет 4Кбайта. Счетчик команд (СК) содержит 12 бит, но инкрементируется в процессе счета только младшие 11 бит. Поэтому из состояния 7FFh перейдет в состояние 000h. Состояние старшего бита СК может быть изменено специальными командами (SEL MB0, SEL MB1). Подобный режим работы СК позволяет создать 2 банка памяти емкость по 2 Кбайта каждый.

Карта ПП

В резидентной ПП имеются три специализированных адреса:

- адрес 000h – ему передается управление после окончания сигнала RST;

- адрес 0003h – расположен вектор прерывания от внешнего источника;

- адрес 0007h – вектор обработки прерывания от таймера;

ПП разделена не только на банки емкостью 2Кбайта, но и на страницы по 256 байт. В командах условного перехода задается 8-битный адрес передачи управления в пределах текущей страницы. Команда вызова п/п (подпрограммы) модифицирует 11 бит СК, обеспечивая тем самым межстраничный переход в пределах выбранного банка ПП.

В МК – системе, работающей с внешней ПП возникает проблема размещения п/п в двух банках памяти. Проблема эта связана с тем, что МК не имеет средств считывания и анализа флага MB, равного содержимому старшего бита СК11. Поэтому в каждый текущий момент исполнения программы, состоящей из потоков вызовов п/п, нет возможности определения номера банка памяти, из которой осуществляется выборка. Переходы выполняются только по командам SEL MB, необходимо следить за тем, чтобы п/п, взаимно вызывающие друг друга располагались в пределах одного банка памяти. В противном случае возникает необходимость модификации признака MB в вызываемой п/п и восстанавливает его при возврате в вызываемую п/п. Но если вызов носит условный характер, то проблема восстановления может оказаться неразрешимой.

При обработке запросов прерывания в МК 48 старший бит СКn принудительно устанавливается в 0. Это приводит к необходимости п/п обслуживания прерывания и все п/п, вызываемые ею, размещать в пределах банка памяти 0.

Старший байт хранится в ячейке с меньшим адресом.

2.6. Память данных (пд)

РПД емкостью 64 байта имеет в своем составе 2 банка регистров 0 – 7 и 24 – 31 по 8 регистров в каждом. Выбор банка осуществляется командами SEL RB0 и SEL RB1. Допускается прямая, регистровая и косвенно-регистровая адресация.

В первом случае 3х битовый адрес определяет один из регистров текущего банка (0 и 1). При косвенно регистровой в качестве указателей адреса используется

R0 или R1 банка 0

или

R0* или R1* банка 1,

адрес занимает разряды 6 0.

Переключение банков используется при переходах на п/п для сохранения содержимого регистров (сохранения контекста задачи) или для увеличения общего пространства ОЗУ.

Помимо внутренней памяти данных ОЗУ расширяется за счет внешней памяти на 256 байт.

Область стека

Ячейки РПД с адресами 8-23 адресуются указателем стека из ССП и могут быть использоваться в качестве 8-уровневого стека.

В стек заносятся при переходах на п/п содержимое СК (адрес возврата) и часть слова состояния.

В случае, если уровень вложенности п/п меньше восьми, незадействованные в стеке ячейки могут использоваться как ячейки РПД. При переполнении стека регистр – указанного стека, построенный на основе 3-битного счетчика, переходит из состояния 7 в состояние 0. МК 48 не имеет команд загрузки байт в стек или его извлечения из стека (типа PUSH или POP), и в нем фиксируются только содержимое СК и старшая тетрада ССП (флаги).

В ВПД слова хранятся: старший байт в ячейке с большим адресом.

В МК – системах, использующих внешнее ОЗУ, через регистры косвенного адреса R0 и R1 возможен доступ к ВПД емкостью 256 байт.