Меню сайта

Урок 57. Симовльная коррекция: сложение и вычитание

Команды символьной коррекции очень похожина команды десятичной
— — — коррекции. — — — Ониследуют за сложением или вычитанием распакованных
— — — десятичных чисел. — В тех же случаях, в которых программаиспользует
— — — команды десятичной коррекции DAA и DAS дляупакованных десятичных
— — — чисел, она использует символьную коррекциюдля распакованных
— — — десятичных чисел. — В распакованных десятичных числах цифры от 0до
— — — 9 представляются одним байтом. — Такая конструкция числа называется
— — — символьной десятичной из=за того, чтотакие числа просто
— — — преобразовывать в символьный вид инаоборот (прибавлять и вычитать
— — — 30H, соответственно).

— — — — — После сложения двух распакованныхдесятичных чисел программа
— — — обычно выполняет команду символьнойкоррекции при сложении AAA,
— — — которая преобразует результат в правильноераспакованное
— — — представление десятичного числа. Правиласложения идентичны
— — — правилам для упакованных десятичних чисел.Поскольку сложение двух
— — — распакованных десятичных чисел может датьв результате число,
— — — большее 9, командам AAA и AAS требуетсядля работы не только
— — — регистр AL. В случае команды AAA младшаяцифра скорректированного
— — — результата остается в регистре AL. Еслидесятичное сложение привело
— — — к переносу из младшей цифры, команда AAAустанавливает равными 1
— — — флаги переноса и дополнительного переноса.В других случаях она
— — — сбрасывает их в 0. Содержимое другихфлагов не определено после
— — — команды коррекции. Команды символьнойкоррекции отличаются от
— — — десятичных команд тем, что они влияют насодержимое регистра AH, а
— — — также устанавливают флаг переноса, еслиесть перенос из младшей
— — — значащей цифры.

— — — — — Символьная коррекция вычитания AASиспользуется в программе
— — — после вычитания одного распакованногодесятичного числа из другого,
— — — и результат этой байтовой операции долженбыть помещен в регистр
— — — AL. Результат команды символьной коррекцииостается в регистре AL,
— — — и если вычитание привело к появлениюзаема, команда AAS уменьшает
— — — регистр AH, а также устанавливает флагипереноса и дополнительного
— — — переноса. В противном случае флагисбрасываются. Другие флаги после
— — — команды не определены.

Категория: Программирование на Ассемблере | Дата: 09.02.13

Меню раздела
Блок