Процесс деления двух неупакованных BCD-чисел несколько отличается от дру- гих рассмотренных ранее операций с ними. Здесь также требуются действия по коррекции, но они должны выполняться до основной операции, выполняющей непосредственно деление одного BCD-числа на другое BCD-число. Предваритель- но в регистре АХ нужно получить две неупакованные BCD-цифры делимого. Это делает программист удобным для него способом. Далее для коррекции результата деления в целях представления его в символьном виде нужно выполнить команду AAD (ASCII Adjust for Division). Команда AAD не имеет операндов и преобразует двузначное неупакованное BCD- число в регистре АХ в двоичное число, которое впоследствии будет играть роль делимого в операции деления. Кроме преобразования, команда AAD помещает по- лученное двоичное число в регистр AL. Делимое, естественно, является двоичным числом из диапазона 0...99. Алгоритм, по которому команда AAD осуществляет это преобразование, выглядит следующим образом. 1. Умножить на 10 старшую цифру исходного BCD-числа в АХ (содержимое АН). 2. Выполнить сложение АН + AL, результат которого (двоичное число) занести в AL. 3. Обнулить содержимое АН. Далее программисту нужно выполнить обычную команду деления DIV для де- ления содержимого АХ на одну BCD-цифру, находящуюся в байтовом регистре или байтовой ячейке памяти. Деление неупакованных BCD-чисел иллюстрирует лис- тинг 8.11. Аналогично ААМ, команде AAD можно найти и другое применение — использо- вать ее для перевода неупакованных BCD-чисел из диапазона 0...99 в их двоичный эквивалент. Для деления чисел большей разрядности так же, как и в случае умножения, нужно реализовывать, например, алгоритм деления в «столбик» или найти более оптимальный путь. Любопытный и настойчивый читатель, возможно, самостоя- тельно разработает эти программы. Но это делать совсем необязательно. Среди файлов, прилагаемых к книге, в каталоге данной главы приведены тексты макро- команд, которые выполняют четыре основных арифметических действия с BCD- числами любой разрядности. Кроме этого в [8] вы найдете дополнительный мате- риал по этому вопросу.