1.3.2. Флаги процессора

Флаговый регистр FLAGS (FCH) содержит информацию о текущем состоянии процессора. Флаги и их расположение в регистре приведены на рис.1.47. Состояние флагового регистра после сброса является неопределенным.

Рис. 1.47. Регистр флагов FLAGS

Флаговый регистр FLAGS содержит 6 флагов состояния, информация в которых устанавливается в результате работы процессора. Четыре флага (C, V, Z, S) используются командами условного перехода. Два флага (H и D) используются командой десятичной коррекции. Оставшиеся два бита могут быть использованы как флаги пользователя (F1 и F2). Ниже подробно рассмотрено назначение каждого из основных флагов МК Z8.

1.3.2.1. Флаг переноса C (Carry Flag)

Флаг переноса устанавливается в 1, если в результате арифметической операции генерируется “перенос из” или “заем в” старший 7-ой бит результата. В противном случае флаг С очищается в 0.

В процессе выполнения команд циклического или арифметического сдвига флаг переноса С содержит последний бит, выдвинутый из указанного в команде регистра.

Команды могут устанавливать, сбрасывать или инвертировать (дополнять) флаг переноса.

1.3.2.2. Флаг нуля Z (Zero Flag)

Если в результате арифметической или логической операции получается нулевой результат, то флаг Z устанавливается в 1, в противном случае флаг Z очищается в 0.

Если результат команды проверки бита в регистре равен 00Н,0то флаг нуля устанавливается в 1, в противном случае — очищается в 0.

Если результат выполнения команды циклического или арифметического сдвига равен 00Н, флаг Z устанавливается в 1, иначе —сбрасывается в 0.

1.3.2.3. Флаг знака S (Sign Flag)

Флаг знака хранит значение старшего бита результата текущей арифметической или логической операции, операции циклического илиарифметического сдвига.

Для производства арифметических операций над числами со знаком в МК используется представление информации в дополнительном коде. Положительное число при этом идентифицируется в старшем значащем разряде и, соответственно, значение флага знака также равно 0. Отрицательное число идентифицируется 1 в старшем значащем разряде и, соответственно, флаг S также будет равен 1.

1.3.2.4. Флаг переполнения V (Overflow Flag)

Для знаковых арифметических операций, операций циклического и арифметического сдвигов флаг переполнения V устанавливается в 1, если результат больше максимально возможного положительного числа (+127) или меньше минимально возможного отрицательного числа (-128), представленного 8-битным дополнительным кодом. Флаг V устанавливается в 0, если переполнение отсутствует. В результате поразрядных логических операций флаг V всегда сбрасывается в 0.

1.3.2.5. Флаг десятичной коррекции D (Decimal Adjust Flag)

Флаг десятичной коррекции D используется для двоично-десятичной арифметики BCD (Binary Coded Decimal). Поскольку алгоритм десятичной коррекции различен для сложения и вычитания, этот флаг сохраняет информацию о последней выполненной команде, для последующей команды десятичной коррекции DA. После выполнения операциивычитания флаг D устанавливается в 1, а после операции сложения —очищается в 0.

1.3.2.6. Флаг полупереноса H (Half Carry Flag)

Флаг полупереноса H устанавливается в 1, когда при сложениичисел генерируется перенос из 3-его бита или при вычитании генерируется заем в 3-ий бит. Флаг H используется командой десятичной коррекции DA.

Значения всех флагов изменяются командой IRET при восстановлении из стека состояния флагового регистра. Команды WDH и WDT устанавливают флаги Z, S и V в неопределенное состояние. Команда SWAP устанавливает в неопределенное состояние флаги C и V.

 

1.3.3. Набор команд

Команды микроконтроллеров Z8 функционально могут быть разделены на восемь групп:

— команды загрузки;

— арифметические команды;

— логические команды;

— команды управления программой;

— команды манипуляции битами;

— команды пересылки блоков;

— команды сдвигов;

— команды управления процессором.

1.3.3.1. Описание системы команд

В табл.1.8 приведено краткое описание системы команд микроконтроллеров, причем для каждой команды дано мнемоническое обозначение, принятое в языке ассемблера, указан состав операндов и смысл команды на английском языке ( для понимания происхождения мнемоники как аббревиатуры ) и на русском языке. Аббревиатура “сс” в колонке операндов команд управления программой означает код условия ( condition ), а аббревиатура “r”— любой регистр из рабочей группы ( register ).

Таблица 1.8. Краткое описание системы команд микроконтроллера Z8

Мнемоника Операнды Наименование команды
Английский язык Русский язык
КОМАНДЫ ЗАГРУЗКИ

CLR

LD

LDC

LDE

POP

PUSH

dst

dst,src

dst,src

dst,src

dst

src

Clear

Load

Load Constant

Load External Data

Pop

Push

Очистить

Загрузить

Загрузить константу

Загрузить внешние данные

Извлечь из стека

Загрузить в стек

АРИФМЕТИЧЕСКИЕ КОМАНДЫ

ADC

ADD

CP

DA

DEC

DECW

INC

INCW

SBC

SUB

dst,src

dst,src

dst,src

dst

dst

dst

dst

dst

dst,src

dst,src

Add with Carry

Add

Compare

Decimal Adjust

Decrement

Decrement Word

Increment

Increment Word

Subtract with Carry

Subtract

Сложить с переносом

Сложить

Сравнить

Десятичная коррекция

Декремент

Декремент слова

Инкремент

Инкремент слова

Вычесть с заемом

Вычесть

ЛОГИЧЕСКИЕ КОМАНДЫ

AND

COM

OR

XOR

dst,src

dst

dst,src

dst,src

Logical AND

Complement

Logical OR

Logical EXCLUSIVE OR

Логическое И

Дополнение ( НЕ )

Логическое ИЛИ

Исключающее ИЛИ

КОМАНДЫ УПРАВЛЕНИЯ ПРОГРАММОЙ

CALL

DJNZ

IRET

JP

JR

RET

dst

r,dst

cc,dst

cc,dst

Call Procedure

Decrement and Jump

Non Zero

Interrupt Return

Jump

Jump Relative

Return

Вызов подпрограммы

Декремент и переход,

если не нуль

Возврат из прерывания

Переход

Переход относительный

Возврат из подпрограммы

КОМАНДЫ МАНИПУЛЯЦИИ БИТАМИ

TCM

TM

AND

OR

XOR

dst,src

dst,src

dst,src

dst,src

dst,src

Test Complement

Under Mask

Test Under Mask

Bit Clear

Bit Set

Bit Complement

Проверить дополнение

с маской

Проверить с маской

Очистить биты

Установить биты

Дополнить биты

КОМАНДЫ ПЕРЕСЫЛКИ БЛОКОВ

LDCI

LDEI

dst,src

dst,src

Load Constant

Autoincrement

Load External Data

Autoincrement

Загрузить константу

с автоинкрементом

Загрузить внешние данные

с автоинкрементом

КОМАНДЫ СДВИГОВ

RL

RLC

RR

RRC

SRA

SWAP

dst

dst

dst

dst

dst

dst

Rotate Left

Rotate Left

Through Carry

Rotate Right

Rotate Right

Through Carry

Shift Right Arithmetic

Swap Nibbles

Циклический влево

Циклический влево

через перенос

Циклический вправо

Циклический вправо

через перенос

Арифметический вправо

Свопинг полубайтов

КОМАНДЫ УПРАВЛЕНИЯ ПРОЦЕССОРОМ

CCF

DI

EI

HALT

NOP

RCF

SCF

SRP

STOP

WDH

WDT

src

Complement Carry Flag Disable Interrupts

Enable Interrupts

Halt

No Operation

Reset Carry Flag

Set Carry Flag

Set Register

Pointer

Stop

WDT Enable During

HALT

WDT Enable or Refresh

Дополнить флаг переноса

Запретить прерывания

Разрешить прерывания

Переход в режим HALT

Нет операции

Сбросить флаг переноса

Установить флаг переноса

Установить указатель

регистров

Переход в режим STOP

Разрешение сторожевого

таймера в режиме HALT

Разрешение или переза-

пись сторожевого таймера


Информация о работе «Микроконтроллеры Z86 фирмы ZILOG»
Раздел: Информатика, программирование
Количество знаков с пробелами: 62013
Количество таблиц: 12
Количество изображений: 29

0 комментариев


Наверх