скачать рефераты

скачать рефераты

 
 
скачать рефераты скачать рефераты

Меню

Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ скачать рефераты

p align="left">В АЛУ производятся действия над целыми числами без знака. В двухоперандных операциях: сложение (ADD), сложение с переносом (ADDC) и вычитание с заёмом (SUBB) аккумулятор является первым операндом и принимает результат операции. Вторым операндом может быть рабочий регистр выбранного банка рабочих регистров, регистр внутренней памяти данных с косвенно-регистровой и прямой адресацией или байт непосредственных данных. Указанные операции влияют на флаги: переполнения, переноса, промежуточного переноса и флаг четности в слове состояния процессора (PSW).

Использование разряда переноса позволяет многократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).

Выполнение операций сложения и вычитания с учетом знака может быть осуществлено с помощью программного управления флагом переполнения (OV) регистра PSW. Флаг промежуточного переноса (АС) обеспечивает выполнение арифметических операций в двоично-десятичном коде.

Операции инкрементирования и декрементирования на флаги не влияют.

Операции сравнения не влияют ни на операнд назначения, ни на операнд источника, но они влияют на флаг переноса.

Существуют три арифметические операции, которые выполняются только на аккумуляторе: две команды проверки содержимого аккумулятора A (JZ, JNZ), и команда десятичной коррекции при сложении двоично-десятичных кодов.

При операции умножения содержимое аккумулятора А умножается на содержимое регистра В и результат размещается следующим образом: младший байт в регистре A, старший - в регистре B.

В случае выполнения операции деления целое от деления помещается в аккумулятор А, остаток от деления - в регистр В.

Логические команды с байтовыми переменными. Система команд ОМЭВМ позволяет реализовать логические операции: "И", "ИЛИ", "ИСКЛЮЧАЮЩЕЕ ИЛИ" на регистре-аккумуляторе (А) и байте-источнике. Вторым операндом (байтом-источником) при этом может быть рабочий регистр в выбранном банке рабочих регистров; регистр внутреннего ОЗУ, адресуемый с помощью косвенно-регистровой адресации; прямо адресуемые ячейки внутреннего ОЗУ и регистры специальных функций; непосредственная величина.

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

Существуют логические операции, которые выполняются только на аккумуляторе: сброс и инвертирование всех восьми разрядов А; циклический сдвиг влево и вправо; циклический сдвиг влево и вправо с учетом флага переноса; обмен местами старшей и младшей тетрад внутри аккумулятора.

Команды передачи данных. Таблицы символов (кодов), зашитые в ПЗУ программы, могут быть выбраны с помощью команд передачи данных с использованием косвенной адресации. Байт константы может быть передан в аккумулятор из ячейки памяти программ, адресуемой суммой базового регистра (PC или DPTR) и индексного регистра (содержимого А). Это обеспечивает, например, удобное средство реализации алгоритма преобразования кода ASCII в семисегментный код.

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

Ячейка внутри адресного пространства 64 Кбайт внешнего ОЗУ также может быть выбрана с использованием косвенно-регистровой адресации через регистр-указатель данных DPTR.

Команды передачи между прямо адресуемыми регистрами позволяют заносить величину из порта в ячейку внутреннего ОЗУ без использования рабочих регистров или аккумулятора.

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

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

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

Команды ветвления и передачи управления. Адресное пространство памяти программ ОМЭВМ не имеет страничной организации, что позволяет свободно перемещать фрагменты программы внутри адресного пространства, при этом не требуется перезасылка (изменение) номера страницы.

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

Команды 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 и к отдельно адресуемым битам регистров специальных функций.

ПРИМЕР: SETB BIT(SETB 1FH); CLR TF0; CLR C.

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

ПРИМЕР: MOV A,@Ri (MOV A,@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

CLR bit

Сброс бита

2

1

CPL C

Инверсия флага переноса

1

1

CPL bit

Инверсия бита

2

1

MOV C, 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)

б) Команды проверки и операций с битами

Страницы: 1, 2, 3