Смекни!
smekni.com

Motorola MC68HC705C8 (стр. 5 из 12)

Регистр условий не изменяется.

BILПереход, если вход запроса прерывания в 0.

PC(PC)+$0002+Rel Если IRQ\=0

Тестируется состояние выводы микропроцессора запроса внешнего прерывания. Возникает переход, если на входе нулевой логический уровень.

Регистр условий не изменяется.

BIHПереход, если вход запроса прерывания в 1.

PC(PC)+$0002+Rel Если IRQ\=1

Тестируется состояние выводы микропроцессора запроса внешнего прерывания. Возникает переход, если на входе логическая единица.

Регистр условий не изменяется.

BSRПереход на подпрограмму.

PC(PC)+$0002 В PC адрес возврата

(PCL) Сохраняется младший байт адреса возврата в стек

SP(SP)-$0001

(PCH) Сохраняется старший байт адреса возврата в стек

SP(SP)-$0001

PC(PC)+Rel В PC загружается адрес подпрограммы

Программный счетчик увеличивается на 2 от адреса кода операции BSR, таким образом в PC оказывается адрес следующей за BSR команды, который является адресом возврата из подпрограммы. Младший байт программного счетчика помещается в стек. Указатель стека уменьшается на 1. Затем старший байт программного счетчика помешается в стек, указатель стека уменьшается на 1. Производится переход по адресу, определяемому смещением.

Регистр условий не изменяется.

JMPДлинный безусловный переход.

PCЭффективный адрес

Осуществляется переход по эффективному адресу. Эффективный адрес вычисляется в соответствии с правилами для расширенного, прямого и индексного режимов адресации.

Регистр условий не изменяется.

JSRДлинный вызов подпрограммы.

PC(PC)+n n=1,2,3 взависимости от режима адресации

(PCL); SP SP-$0001 Младший байт адреса возврата в стек

(PCH); SP SP-$0001 Старший байт адреса возврата в стек

PCЭффективный адрес Загрузить в PC адрес подпрограммы

Программный счетчик увеличивается на n, то есть до адреса следующей за JSR команды. Затем PC сохраняется в стеке. Не используемые биты программного счетчика сохраняются как единицы. Указатель стека указывает на следующую свободную ячейку памяти. Осуществляется переход по эффективному адресу. Эффективный адрес вычисляется в соответствии с правилами для расширенного, прямого и индексного режимов адресации.

Регистр условий не изменяется.

SWI Программное прерывание

(PC)(PC)+$0001 В PC адрес возврата

(PCL); SP(SP)-$0001 В стек младший байт адреса возврата

(PCH); SP(SP)-$0001 В стек старший байт адреса возврата

(X); SP(SP)-$0001 В стек индексный регистр

(AC); SP(SP)-$0001 В стек аккумулятор

(CCR); SP(SP)-$0001 В стек регистр признаков

I бит 1

PCH($xFFC) Вектор прерывания (x=1 или 3, в зависимости от версии HC05)

PCL($xFFD)

Содержимое программного счетчика увеличивается на единицу. Программный счетчик, индексный регистр, аккумулятор и регистр признаков помещаются в стек. Содержимое указателя стека уменьшается на единицу каждый раз после того, как в стек помещен байт. Бит маскирования прерываний устанавливается в единицу. В программный счетчик записывается адрес, хранящийся в векторе прерывания SWI (адрес расположен по адресу n-0002 и n-0003, где n-адрес, соответствующий единичному состоянию всех адресных выходов миропроцессора.). Команда SWI не маскируется установкой бита I регистра признаков.

I Устанавливается в 1.

RTI Возврат из подпрограммы обработки прерывания

SP(SP)+$0001 ССR CCR из стека

SP(SP)+$0001 AC AC из стека

SP(SP)+$0001 X X из стека

SP(SP)+$0001 PCH PCH из стека

SP(SP)+$0001 PCL PCL из стека

Регистр признаков, аккумулятор, индексный регистр и программный счетчик восстанавливаются из стека. Бит I сбрасывается, если соответствующий бит регистра признаков в стеке был нулевым.

Биты регистра признаков принимают значения в соответствии с байтом, взятым из стека.

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

SP(SP)+$0001 PCH PCH из стека

SP(SP)+$0001 PCL PCL из стека

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

Регистр признаков не изменяется.

Арифметические и логические команды, битовые операции.

ADDСложить содержимое ячейки памяти с аккумулятором

AC(AC)+(M)

Сложить содержимое M и содержимое AC и разместить в AC.

H A3*M3+M3*R3\+R3\*A3

Устанавливается, если имеет место перенос из бита 3, иначе сбрасывается.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если имеет место перенос из старшего бита результата, иначе сбрасывается.

ADCСложить содержимое ячейки памяти с аккумулятором
и флагом переноса.

AC(AC)+(M)+(C)

Сложить содержимое бита C и сумму содержимого M и содержимого AC и разместить в AC.

H A3*M3+M3*R3\+R3\*A3

Устанавливается, если имеет место перенос из бита 3, иначе сбрасывается.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если имеет место перенос из старшего бита результата, иначе сбрасывается.

SUBВычесть.

AC(AC)-(M)

Вычесть содержимое M из AC и разместить результат в AC.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если абсолютная величина содержимого M больше абсолютной величины аккумулятора, иначе сбрасывается.

SBCВычесть содержимое ячейки памяти из аккумуляторе
с флагом заема
.

AC(AC)-(M)-(C)

Вычесть содержимое M из AC и разместить результат в AC.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если абсолютная величина одержимого M, плюс предыдущее значение C, больше абсолютной величины аккумулятора, иначе сбрасывается.

ANDОперация И содержимого ячейки памяти и аккумулятора.

AC(AC)*(M)

Произвести логическое умножение между содержимым аккумулятора и содержимым M и разместить результата в AC. (С каждым битом аккумулятора и соответствующим битом M производится операция логического умножения).

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

ORAОперация ИЛИ содержимого ячейки памяти и аккумулятора.

AC(AC)+(M)

Произвести логическое сложение между содержимым аккумулятора и содержимым M и разместить результата в AC. (С каждый бит аккумулятора и соответствующим битом M производится операция логического сложения).

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены, иначе сбрасывается.

CMPАрифметическое сравнение аккумулятора и ячейки памяти.

(AC)-(M)

Сравнить содержимое M и AC и установить биты в регистре признаков. Содержимое AC и M не изменяется.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если абсолютная величина содержимого M больше абсолютной величины аккумулятора, иначе сбрасывается.

CPXАрифметическое сравнение индексного регистра и ячейки памяти.

(X)-(M)

Сравнить содержимое M и X и установить биты в регистре признаков. Содержимое X и M не изменяется.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все битв результата сброшены. Иначе сбрасывается.

C A7*M7+M7*R7\+R7\*A7

Устанавливается, если абсолютная величина одержимого M больше абсолютной величины регистра X, иначе сбрасывается.

BIT Поразрядное сравнение ячейки памяти с аккумулятором.

(ACCX)*(M)

Производит сравнение содержимого AC и M посредством операции логическое И и устанавливает соответственно результату биты в регистре признаков. Ни содержимое AC, ни содержимое M не изменяются

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все биты результата сброшены. Иначе сбрасывается.

MUL Умножение.

X : A=X x A

Умножается 8-битное число в индексном регистре X на 8-битное число в аккумуляторе. 16-битный результат помещается в индексный регистр и аккумулятор. В индексном регистре старшие 8 бит результата, в аккумуляторе младшие 8 бит.

H 0 (сбрасывается)

C 0 (сбрасывается)

INCИнкремент на 1

AC(AC)+$01 или M(M)+$01 или X(X)+$01

Добавляет единицу к содержимому аккумулятора, индексного регистра или ячейки памяти. Биты N и Z регистра признаков устанавливаются или сбрасываются в соответствии с результатом. Бит C регистра признаков не изменяются, поэтому после команды INC имеют смысл только следующие команды перехода BEQ, BNE, BPL и BMI.

N R7

Устанавливается, если старший бит результата установлен, иначе сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если все биты результата сброшены. Иначе сбрасывается.

DECДекремент на 1

AC(AC)-$01 или M(M)-$01 или X(X)-$01

Вычитает единицу из содержимого аккумулятора, индексного регистра или ячейки памяти. Биты N и Z регистра признаков устанавливаются или сбрасываются в соответствии с результатом. Бит C регистра признаков не изменяются, поэтому после команды DEC имеют смысл только следующие команды перехода: