Состав команд арифметических действий

ADI – C6 – сложить аккумулятор с данными.

ADD L – 85 – сложить содержимое регистра L с содержимым аккумулятора.

ADD H – 84 – сложить содержимое регистра H с содержимым аккумулятора.

ADD М – 86 – сложить содержимое аккумулятора с содержимым ячейки памяти, на которую указывает пара регистров HL.

SUI – Ø6 – вычесть данные из аккумулятора.

SUB L – 95 – вычесть содержимое регистра L из содержимого аккумулятора.

SUB H – 94 – вычесть из содержимого регистра Н в аккумулятор.

SUB М – вычесть данные, расположенные по адресу, на которую указывает пара регистров HL, из аккумулятора.

INR A – 3C – к содержимому аккумулятора +1.

INX H – 23 – инкремент пары регистров HL.

DCR A – 3D – декрементировать (- 1) аккумулятор.

DCX H – 2B – декрементировать пару регистров HL.

CPI – FE – сравнить содержимое аккумулятора с данными (в следующей ячейке памяти).

CMP L – BD – сравнить содержимое аккумулятора с содержимым регистра L.

CMP H – сравнить содержимое аккумулятора с содержимым регистра H.

CMP M – сравнить аккумулятор с ячейкой памяти, на которую указывает пара регистров HL.

Содержит команды сложить, вычесть, инкрементировать, декрементировать и сравнить.

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

Команда ADI – это команда сложить непосредственно, она является двухбайтовой. Ее формат (код операции С6) содержится в первом байте команды, а непосредственно за ним, во втором байте, находятся данные для сложения с содержимым аккумулятора.

Команда ADD L – содержимое аккумулятора (OF) складывается с содержимым регистра L (01). Полученная в результате выполнения команды сумма (10) помещается в аккумулятор.

Команда ADD H – выполняется так же.

Команда ADD М – однобайтовая команда – сложить с косвенным адресом. Адрес второго слагаемого задан в более сложной форме с использованием так называемого способа косвенной регистровой адресации. При такой адресации пара регистров HL указывает 16-тиразрядный адрес памяти, где хранится второе слагаемое.

Команда вычитания SUI.

Рассмотрим, например, 00001001 – 00000001 → Ø9Н – Ø1Н.

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


Дополнительный код FF второго числа складывается с первым числом, что дает сумму 100001000. В старшем девятом бите суммы единица является переполнением и не принадлежит разности 00001000. МП использует это переполнение для установления индикатора переноса CY в регистре состояния. Вычитая, МП инвертирует переполнение, и результат становится содержимым индикатора переноса CY.

Рассмотрим другой пример, когда уменьшаемое меньше вычитаемого: Ø5 – Ø6 = FF = -1(10)

 
 


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

Допустим, первое слагаемое 5 находится в аккумуляторе, а второе слагаемое находится в регистре L.

Команда сравнение (СМР) – вычитает содержимое регистра памяти из содержимого аккумулятора, но при этом не изменяет содержимого ни того, ни другого. Индикаторы регистра состояния подвержены воздействию команд сравнения.

Например, сравнить содержимое аккумулятора с содержимым регистра L.

Содержимое регистра L переводим в дополнительный код.

 
 


Первое число и дополнительный код второго числа складываются, что дает результат 10000000, затем МП проверяет равенство нулю восьми младших разрядов. Индикатор нуля Z в примере принимает значение 1, переполнение 1 инвертируется и индикатор CY устанавливается в ноль. Сброшенный индикатор CY означает, что содержимое аккумулятора больше либо равно содержимому регистра L.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: