Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Арифметические команды с непосредственной адресацией


Сложение с непосредственным операндом:

ADI, b2; (A)+b2 ® A, т.е. содержимое аккумулятора сложить с непосредственным операндом b2.

ACI , b2; (A)+b2+(CY) ® A, т.е. сложение содержимых регистра А, непосредственного операнда b2 и бита переноса CY.

Вычитание непосредственного операнда:

SUI , b2; (A)-b2 ® A, т.е. из содержимого аккумулятора вычесть непосредственный операнд b2.

SBI , b2; (A)-b2-(CY) ® A.

Команды сравнения CMP r; CPI, b2 выполняют операцию сравнения содержимого аккумулятора с содержимым регистра r или непосредственным операндом b2. При этом содержимое аккумулятора не изменяется, но формируются признаки в регистре F.

CMP r; (A)-(r), где r: B, C, D, E, H, L, M, A.

CPI , b2; (A)-b2.

Команда сложения удвоенной точности:

DAD rp; (HL)+(rp) ® HL, rp: регистровые пары ВС, DE, HL. При выполнении этой команды устанавливается только флаг CY.

Команда десятичной коррекцииDAA применяется после выполнения операций сложения двоично-десятичных чисел с целью преобразования результата из двоичной формы в двоично-десятичную. При выполнении команды DAA реализуются следующие действия:

1. Если значение младшей тетрады аккумулятора больше кода 1001 или если флаг АС=1, то к содержимому аккумулятора прибавляется число 0110.

2. Если после этого старшая тетрада содержимого аккумулятора имеет код больший 1001 или если флаг CY=1, то к содержимому аккумулятора прибавляется число 0110 0000.

 

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

 

Признаки результата: S Z AC P CY

+ + - + 0

Команда побитной конъюнкции:

ANA r; (A) & (r) ® A.

Команда побитной дизъюнкции:

ORA r; (A) v (r) ® A.

Команда побитного сложения по модулю два:

XRA r; (A) Å (r) ® A. В этих командах r: B, C, D, E, H, L, M, A.

Рассмотрим выполнение команды ANA E (рис.2.14).

 

 

 

Логические команды с непосредственной адресацией (непосредственным операндом b2).

ANI , b2; (A) & b2 ® A.

ORI , b2;(A) v b2 ® A.

XRI , b2;(A) Å b2 ® A.

 

Команды сдвига в аккумуляторе на 1 разряд

Признаки результата: S Z AC P CY

 
 


Сдвинуть циклически влево:

7 - A - 0
CY
RLC;

 
 

 


Сдвинуть циклически вправо:

7 - A - 0
CY
RRC;

 
 

 

 


Сдвинуть циклически влево через бит CY:

7 - A - 0
CY
RAL;

 
 


Сдвинуть циклически вправо через бит CY:

RAR;

 
 


Команды передачи управления

 

Признаки результата: S Z AC P CY

 
 


После выборки кода команды из памяти в программном счетчике РС формируется адрес следующей по порядку команды методом автоматического увеличения содержимого РС на единицу. Такой механизм ведения по программе имеет место на линейных ее участках. В разветвляющихся или циклических программах и при использовании подпрограмм имеют место переходы, когда выполняется не следующая по порядку команда, а команда, находящаяся в другом месте программной памяти. Команды, выполняющие такие переходы, называют командами передачи управления. Команды передачи управления осуществляют перезагрузку РС адресом передачи управления, который указывается в кодах этих команд.

Команды безусловной передачи управления:

PCHL; (H) ® PCH, Перейти без условия по адресу, находящемуся в HL.

(L) ® PCL.

JMP b3b2; b2 ® PCL, Перейти без условия по адресу b3b2.

b3 ® PCH.

Команды передачи управления по условиювыполняют передачу управления, если условие выполняется, и не выполняют перехода, если указанное условие не выполняется. Условия определяются по значениям признаков в регистре флагов CY, P, Z, S по их единичному или нулевому значению. Восемь команд передачи управления приведены в табл.2.1. В общем виде все восемь команд передачи управления по условию можно представить в виде одного мнемокода Jcon b3b2 иодного кода команды 11ССС010, где conпеременная часть мнемокода, ССС - код условия передачи управления (см. табл.2.1.).

 

Таблица 1.1

con CCC УСЛОВИЯ ПЕРЕДАЧИ УПРАВЛЕНИЯ
NZ Если результат не нулевой, т.е. Z=0
Z Если результат нулевой, т.е. Z=1
NC Если не было переноса/заема, т.е. CY=0
C Если был перенос/заем, т.е. CY=1
PO Если результат нечетный, т.е. Р=0
РЕ Если результат четный, т.е. Р=1
Р Если результат положительный, т.е. S=0
М Если результат отрицательный, т.е. S=1

 

 

Рассмотрим выполнение МП одной команды передачи управления по условию Z=1 (рис.2.15).

 

 

 

 

 

Вызов подпрограмм(команда CALL b3b2).

Команда вызова подпрограмм CALL b3b2 состоит из первого байта (код операции) и адреса вызываемой подпрограммы (b3b2). При выполнении этой команды текущее содержимое РС (т.е. адрес команды, следующей за CALL) автоматически запоминается в стеке. Этот адрес (называемый адресом возврата) возвращается в РС командой возврата RET, которой должно завершаться выполнение вызванной подпрограммы.

Для запоминания адресов возврата необходима магазинная память (стек), работающая по принципу: первый записанный в нее адрес возврата извлекается последним.

При выполнении команды CALL b3b2 выполняются следующие действия: (РС) ® в стек, т.е. адрес возврата загружается в стек, b3b2 ® PC, т.е. адрес подпрограммы загружается в РС.

Рассмотрим выполнение команды CALL 86 A4 (рис.2.16)

При выполнении команды CALL 86A4 реализуются следующие действия: программный счетчик, ведя по программе, считывает из нее команду CALL 86A4. Содержимое РС после считывания последнего байта команды CALL увеличивается на единицу и равно 856Dh. Далее начинается выполнение считанной в МП команды CALL 86A4. Содержимое РС=856D заносится в стек. РС загружается начальным адресом подпрограммы РС=86А4 и МП приступает к выполнению подпрограммы.

 

 

1) (PCH) ® ((SP)-1) (PC) ® в стек.

2) (PC) ® ((SP)-2)

3) (SP-2) ® SP новое содержимое SP.

4) b2 = A4 ® PCL начальный адрес подпрограммы загружен в РС.

5) b3 = 86 ® PCH

 



Последнее изменение этой страницы: 2016-07-22

headinsider.info. Все права принадлежат авторам данных материалов.