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