Смекни!
smekni.com

Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ (стр. 3 из 4)

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

Команды 16-разрядных переходов и вызовов подпрограмм позволяют осуществлять переход в любую точку адресного пространства памяти программ объёмом 64 Кбайт.

Команды 11-разрядных переходов и вызовов подпрограмм обеспечивают переходы внутри программного модуля емкостью 2 Кбайт. В системе команд имеются команды условных и безусловных переходов относительно начального адреса следующей команды в пределах от (РС)-128 до (РС)+127. Команды проверки отдельных разрядов позволяют осуществлять условные переходы по состоянию "0" или "1" прямо адресуемых битов. Команды проверки содержимого аккумулятора (на ноль/не ноль) позволяют осуществлять условные переходы по содержимому А.

Косвенно-регистровые переходы в системе команд ОМЭВМ обеспечивают ветвление относительно базового регистра (содержимого DPTR или PC) со смещением, находящимся в аккумуляторе А.

Команды битового процессора. Битовый процессор является частью архитектуры ОМЭВМ семейства MCS-51 и его можно рассматривать как независимый процессор побитовой обработки. Битовый процессор выполняет свой набор команд, имеет свое побитово адресуемое ОЗУ и свой ввод-вывод.

Команды, оперирующие с битами, обеспечивают прямую адресацию 128 битов (0–127) в шестнадцати ячейках внутреннего ОЗУ (ячейки с адресами 20Н–2FH) и прямую побитовую адресацию регистров специального назначения, адреса которых кратны восьми:

Р0(80Н), TCON(88H), Р1(90Н), SCON(98H), Р2(А0Н), IЕ(А8Н), РЗ(В0Н), IР(В8Н), PSW(D0H), А(Е0Н), B(F0H).

Каждый из отдельно адресуемых битов может быть установлен в "1", сброшен в "0", инвертирован, проверен. Могут быть реализованы переходы: если бит установлен; если бит не установлен; переход, если бит установлен, со сбросом этого бита; бит может быть перезаписан в (из) разряда переноса. Между любым прямо адресуемым битом и флагом переноса могут быть произведены логические операции "И", "ИЛИ", где результат заносится в разряд флага переноса. Команды побитовой обработки обеспечивают реализацию сложных функций комбинаторной логики и оптимизацию программ пользователя.

4. Способы адресации операндов

Существуют следующие способы адресации операндов-источников:

- регистровая адресация;

- прямая адресация;

- косвенно-регистровая адресация;

- непосредственная адресация;

- косвенная адресация по сумме базового и индексного регистра.

Первые три способа используются также для адресации операнда назначения. Указанные пять способов адресации, используемые в различных сочетаниях, обеспечивают 21 режим адресации. Многие команды содержат поля: "приемник", "источник", которые определяют тип данных, метод адресации и участвующие операнды.

Для команд, не выполняющих операции перезаписи, операнд назначения является и операндом-источником.

Большое количество команд включает операнды, расположенные во внутреннем ОЗУ данных ОМЭВМ. Выбор адресного пространства памяти программ или внешней памяти данных в качестве второго операнда определяется командной мнемоникой (если только второй операнд не является непосредственной величиной).

Адресуемая область внутреннего ОЗУ данных определяется способом адресации и величиной адреса. Например, обращение к регистрам специальных функций может быть выполнено только с помощью прямой адресации.

Регистровая адресация. Регистровая адресация используется для обращения к восьми регистрам выбранного банка (эти же регистры могут быть выбраны с помощью прямой адресации и косвенно-регистровой адресации как обычные ячейки внутреннего ОЗУ данных).

Регистровая адресация используется также для обращения к регистрам А, В, АВ (сдвоенному регистру), DPTR и к флагу переноса С. Использование регистровой адресации позволяет получать двухбайтовый эквивалент трехбайтовых команд прямой адресации.

ПРИМЕР: MOV A,Rn; CLR A; DEC Rn; ADD A,Rn; MOV DPTR,#data16 идр.

Прямая адресация. Прямая байтовая адресация используется для обращения к ячейкам внутренней памяти (ОЗУ) данных (0 – 127) и к регистрам специальных функций.

ПРИМЕР: MOV A,direct(MOV A,4FH); MOV direct,direct; IN direct; ADD A,directидр.

Прямая побитовая адресация используется для обращения к отдельно адресуемым 128 битам, расположенным в ячейках с адресами 20Н–2FH и к отдельно адресуемым битам регистров специальных функций.

ПРИМЕР: SETBBIT(SETB1FH); CLRTF0; CLRC.

Косвенно-регистровая адресация. Косвенно-регистровая адресация используется для обращения к ячейкам внутреннего ОЗУ данных. В качестве регистров-указателей используется регистры R0, R1 выбранного банка. В командах PUSH и POP используется содержимое указателя стека (SP). Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров-указателей R0 и R1 (выбранного банка рабочих регистров) выбирается ячейка из блока в 256 байт внешней памяти данных. 16-разрядный указатель данных (DPTR) может быть использован для обращения к любой ячейке адресного пространства внешней памяти данных объемом до 64 Кбайт.

ПРИМЕР: MOV A,@Ri (MOVA,@R0); INC @Ri; ADD A,@Ri; XRL A,@Ri; MOVX @Ri,A; MOVX A,@DPTR.

Непосредственная адресация. Непосредственная адресация позволяет выбрать из адресного пространства памяти программ константы, явно указанные в команде.

ПРИМЕР: MOV A,#data (MOV A,#1FH); MOV DPTR,#data16 (MOV DPTR,#5B4EH); ADD A,#data; XRL A,#data.

Косвенно-регистровая адресация по сумме базового и индексного регистров. Косвенно-регистровая адресация по сумме: базовый регистр плюс индексный регистр (содержимое аккумулятора А) упрощает просмотр таблиц, зашитых в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому суммой содержимого DPTR или PC и содержимого А.

ПРИМЕР: MOVC A,@A+DPTR; MOVC A,@A+PC; JMP @A+DPTR.


5 Программная модель битового процессора

Пригодность архитектуры каждого компьютера для конкретного класса задач определяется тем, насколько его система команд соответствует задачам, которые должны быть выполнены. Поэтому для дискретного управления в реальном масштабе времени наличие в системе команд операций непосредственно над битами приводит к созданию более производительных систем и программ обработки входной и выходной двоичной информации. С этой целью в ОМЭВМ семейства MCS-51 введены специальные средства, называемые битовым процессором, которые поддерживают прямые логические операции с отдельными битами и операции их тестирования и позволяют использовать однобитовые переменные в логических операциях.

В связи с этим в систему команд ОМЭВМ семейства MCS-51 введены специальные инструкции для выполнения операций с битовыми переменными. Имеется 17 таких команд, которые перечислены в табл. 3.

Таблица 3 – Команды битового процессора

Мнемоническое обозначение Описание команды Число байтов Число циклов
SETB C Установка флага переноса 1 1
SETB bit Установка бита 2 1
CLRC Сброс флага переноса 1 1
CLRbit Сброс бита 2 1
CPLC Инверсия флага переноса 1 1
CPL bit Инверсия бита 2 1
MOVC, bit Пересылка бита во флаг переноса 2 1
MOV bit,C Пересылка флага переноса в бит 2 2
ANL C, bit "Логическое И" бита и флага переноса 2 2
ANL. C, /bit "Логическое И" инверсии бита и флага переноса 2 2
ORL C, bit "Логическое ИЛИ" бита и флага переноса 2 2
ORL C,/bit "Логическое ИЛИ" инверсии бита и флага переноса 2 2
JC rel8 Переход, если флаг переноса установлен 2 2
JNC rel8 Переход, если флаг переноса сброшен 2 2
JB bit,rel8 Переход, если бит установлен 3 2
JNB bit,rel8 Переход, если бит сброшен 3 2
JBC bit,rel8 Переход, если бит установлен, и сброс этого бита 3 2

ОБОЗНАЧЕНИЯ:

С – флаг переноса;

bit – 128 программно-доступных битов, любой I/O вывод, бит управления или состояния;

/bit – 128 программно-доступных битов, любой I/O вывод, бит управления или состояния, взятые с инверсией;

rel8– байт относительного смещения (условный переход осуществляется в диапазоне от -128 до +127 байтов относительно адреса первого байта следующей команды).

Эти команды в зависимости от выполняемой функции могут быть одно-, двух- или трехбайтные. Те из них, которые оперируют с флагом переноса, имеют однобайтный код или код, за которым следует байт смещения, использующийся для вычисления адреса условного перехода (рис. 4.а). В более обобщенных командах битовых операций после кода добавляется байт адреса прямоадресуемого бита, образуя двух- или трехбайтные команды (рис. 4.б). На рис. 4 для справки приведены коды этих команд.

С помощью указанных команд можно обращаться непосредственно к 128 битам внутреннего ОЗУ и к 83 битам одиннадцати восьмиразрядных регистров ОМЭВМ.

Код команды: Код команды:
SETB С 11010011В (D3H)
CLR С 11000011В (С3Н)
CPL С 10110011В(В3Н)
Код команды Смещение
JC <ге18> 01000000В (40Н)
JNC <ге18> 01010000В (50Н)
а) Команды проверки и управления флагом переноса
Код команды Адрес бита Код команды:
SETB <bit> 11010010B (D2H)
CLR <bit> 11000010В (С2Н)
CPL <bit> 10110010В (В2Н)
MOV С, <bit> 10100010В (А2Н)
MOV <bit>, С 10010010В (92Н)
ANL С, <bit> 10000010В (82Н)
ANL С, </bit> 10110000В (В0Н)
ORL С, <bit> 01110010В(72Н)
ORL С, </bit> 10100000В (А0Н)
Код команды Адрес бита 1 Смещение
JB <bit>, <ге18> 00100000В (20Н)
JNB <bit>, 00010000В (10H) 00110000В (30Н)
JBC <bit>, <ге18> 00010000В (10H)
б) Команды проверки и операций с битами

Рисунок 4 – Форматы команд операций над битами