Специальные арифметическо-логические команды

Специальные арифметическо-логические команды не имеют операндов и занимают в памяти всего один байт.

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

Алгоритм выполнения процессором команды DAA представлен на рис.9.1.

Если воспользоваться известными командами Бейсика, то схему выполнения команды DAA можно представить в следующем виде:

IF ((A)&0Fh)>09h OR AC=1 THEN (A)(A)+06h

IF ((A)&F0h)>90h OR CY=1 THEN (A)(A)+60h

Пример1.48

Метка Мнемокод Комментарий

MVI A,13 ; первое слагаемое подготавливаем в A

MVI B,77 ; второе слагаемое подготавливаем в B

ADD B ; сложение: A=13+77=8A AC=0 CY=0

DAA ; выполняем коррекцию числа в аккумуляторе

После этого в аккумуляторе окажется число 90.

 

Рис. 1.3. Блок-схема алгоритма выполнения команды DAA

Другие специальные арифметическо-логические команды предназначены работы с битом переноса CY регистра признаков.

Команда STC устанавливает в 1 бит переноса CY регистра признаков.

Команда CMC инвертирует бит переноса CY регистра признаков.