На главную Назад
Добро пожаловать, уважаемый посетитель!

Команды символьной коррекции очень похожи на команды десятичной

коррекции.Они следуют за сложением или вычитанием распакованных

десятичных чисел.В тех же случаях, в которых программа использует

команды десятичной коррекции DAA и DAS для упакованных десятичных

чисел, она использует символьную коррекцию для распакованных

десятичных чисел.В распакованных десятичных числах цифры от 0 до

9 представляются одним байтом.Такая конструкция числа называется

символьной десятичной из=за того, что такие числа просто

преобразовывать в символьный вид и наоборот (прибавлять и вычитать

30H, соответственно).

 

После сложения двух распакованных десятичных чисел программа

обычно выполняет команду символьной коррекции при сложении AAA,

которая преобразует результат в правильное распакованное

представление десятичного числа. Правила сложения идентичны

правилам для упакованных десятичних чисел. Поскольку сложение двух

распакованных десятичных чисел может дать в результате число,

большее 9, командам AAA и AAS требуется для работы не только

регистр AL. В случае команды AAA младшая цифра скорректированного

результата остается в регистре AL. Если десятичное сложение привело

к переносу из младшей цифры, команда AAA устанавливает равными 1

флаги переноса и дополнительного переноса. В других случаях она

сбрасывает их в 0. Содержимое других флагов не определено после

команды коррекции. Команды символьной коррекции отличаются от

десятичных команд тем, что они влияют на содержимое регистра AH, а

также устанавливают флаг переноса, если есть перенос из младшей

значащей цифры.

 

Символьная коррекция вычитания AAS используется в программе

после вычитания одного распакованного десятичного числа из другого,

и результат этой байтовой операции должен быть помещен в регистр

AL. Результат команды символьной коррекции остается в регистре AL,

и если вычитание привело к появлению заема, команда AAS уменьшает

регистр AH, а также устанавливает флаги переноса и дополнительного

переноса. В противном случае флаги сбрасываются. Другие флаги после

команды не определены.


 

Mail.ru