Команды символьной коррекции очень похожи
на команды десятичной коррекции. Они
следуют за сложением или вычитанием распакованных десятичных чисел. В тех же случаях, в которых программа
использует команды десятичной коррекции DAA и DAS для
упакованных десятичных чисел, она использует символьную коррекцию
для распакованных десятичных чисел. В распакованных десятичных числах цифры от 0
до 9 представляются одним байтом. Такая конструкция числа называется символьной десятичной из=за того, что
такие числа просто преобразовывать в символьный вид и
наоборот (прибавлять и вычитать 30H, соответственно).
После сложения двух распакованных
десятичных чисел программа обычно выполняет команду символьной
коррекции при сложении AAA, которая преобразует результат в правильное
распакованное представление десятичного числа. Правила
сложения идентичны правилам для упакованных десятичных чисел.
Поскольку сложение двух распакованных десятичных чисел может дать
в результате число, большее 9, командам AAA и AAS требуется
для работы не только регистр AL. В случае команды AAA младшая
цифра скорректированного результата остается в регистре AL. Если
десятичное сложение привело к переносу из младшей цифры, команда AAA
устанавливает равными 1 флаги переноса и дополнительного переноса.
В других случаях она сбрасывает их в 0. Содержимое других
флагов не определено после команды коррекции. Команды символьной
коррекции отличаются от десятичных команд тем, что они влияют на
содержимое регистра AH, а также устанавливают флаг переноса, если
есть перенос из младшей значащей цифры.
Символьная коррекция вычитания AAS
используется в программе после вычитания одного распакованного
десятичного числа из другого, и результат этой байтовой операции должен
быть помещен в регистр AL. Результат команды символьной коррекции
остается в регистре AL, и если вычитание привело к появлению
заема, команда AAS уменьшает регистр AH, а также устанавливает флаги
переноса и дополнительного переноса. В противном случае флаги
сбрасываются. Другие флаги после команды не определены.