Микропроцессор. Устройства на базе микропроцессоров. Чтение и запись данных. Операции над четырёхразрядным кодом по машинным командам, страница 10

DCX RP - работает со стеком при выполнении этих команд флаги не меняются.

DAD RP - сложение содержимого регистровой пары и Н-пары регистра

(HL) Ü(RP)+(HL)

Данная команда однобайтовая и выполняется за 3 МЦ, на флаги не влияет. Использует регистровые пары (BC), (DE),(HL) и указатель стека.

Команды сложения содержимых регистра и А-регистра

ADD R

(A) Ü(A)+( R )

При выполнении данной команды флаги используются все.

Для сложения многобайтных чисел ADC R

(A) Ü(A)+( R) + (CY) Üфлаг переполнения

Команды вычитания содержимого регистра из регистра А

SUB R

(A) Ü(A)-(R )

если (А)<( R) - результат будет в дополнительном коде, причем знак будет находиться в регистре признаков в о флаге знаков.

Для вычитания многобайтных чисел

SBB (R )

(A) Ü(A)- ( R)-(CY)

В более новых МП реализуется операция умножения и деления. При этом используются флаги арифметического переполнения.

Команды логических операций

Выполняются одновременно над всеми ресурсами

А   10100011           Выполнение лог. операций AND  над регистрами А и С

С   00001111

Арез     00000011          ANA  C          И

10101111          OKA  C         ИЛИ

XPA   C          ?           искл. ИЛИ

При выполнении лог-х операций флаги вспомогательного переноса и флаг переполнения всегда равны 0.

Команды сдвига

                      RLC                       A                       сдвиг влево

CY

Данная команда эквивалентна умножению на 2

А  00000001

00000010    и т.д.

RRC - сдвиг вправо

                               A                      

 


                         СY

RAR - циклический сдвиг вправо с учетом переноса

 


A

CY

RAL - циклический сдвиг влево

 


А

CY

JMP  adr   - команда безусловного перехода

(PC) ß adr    -  команда трехбайтовая, выполняется за 3 машинных цикла

Переходы по условию

JNZ  adr  -  анализирует флаг 0, если флаг 0, если флаг нудя равен нулю, то осуществляет переход к указанному адресу

Если Z=1

JZ

JNC  CY=0

JC     CY=1

JPO    P=0

JPE     P=1

JP       S=0

JM      S=1

Команды перехода выполняются не по содержимому аккумуляторов, а по состоянию флагов

(PC) ß  (H,L)

RST   N   - команды рестарта

Содержимое программного счетчика выталкивается в стек, а в программный счетчик записывается число 8N, где N - номер рестарта

RST  0  - процессор осуществляет запись в стек содержимого программного    счетчика

RST  1  - переход к адресу  0008

RST  2  - --------- // --------  0010

При выполнении команды RST в область стека будет сохранен адрес, следующий за командой RST (0108)

RET - программный счетчик записывает содержимое стека. Вершина записывается в младший байт ПС. Затем вершина стека увеличивается на 1, затем вершина стека записывается в старший байт ПС

(PCL)ß ((SP))                                RET  -  безусловный возврат

(SP)   ß  (SP)+1

(PCH) ß   ((SP))

(SP)  ß  (SP)+1

Существует 8 условий возврата

Команды RST и RET могут временно помещать в стек не только программный счетчик, но и слово состояния программы и другие РОН

Команда вызова подпрограммы

CALL adr  (с помощью нее можем обращаться к любому участку памяти)

(SP) ß (SP)-1

((SP)) ß (PCH)

(SP)  ß  (SP)-1

((SP)) ß (PCL)

(PC)  ß  adr

Данная команда выполняется за 5 машинных циклов. Также вызов подпрограммы может осуществляться по условию:

Все команды переходов имеют непосредственную адресацию

В МП, где используются более сложные адресации, сущ.:

n команды ближнего перехода (использует относительную адресацию и переход выполняется внутри 1-й страницы)

n страница памяти - часть адресного пространства размером 256 б

При коротком переходе используется абсолютная адресация к странице. При длинном переходе - адресация к памяти.

Используют в МП типа BE48 и BE51

Команды управления МП-ом

NOP  -  4 такта, 1 маш. Цикл.

Данная команда используется для организации временных задержек и при отладке программ (пустой оператор)