Специальные арифметическо-логические команды
Специальные арифметическо-логические команды не имеют операндов и занимают в памяти всего один байт.
Команда 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 регистра признаков.