Для неупакованных чисел или, как их еще называют ASCII-чисел, существуют аналогичные команды коррекции после сложения – aaa и вычитания – aas. Сложение и вычитание ASCII-чисел также выполняется в два этапа.
Кроме того, над ASCII-числами допустимо выполнение операций умножения и деления.
Умножение ASCII-чисел выполняется в два этапа:
· умножение одноразрядных сомножителей, представленных байтами, в которых младшие тетрады содержат десятичные цифры, а старшие тетрады – нулевые. Умножение выполняется командой mul, которая формирует в регистре AL двоичное произведение;
· коррекция результата с помощью команды aam, которая преобразует полученный результат в двухбайтовое произведение, находящееся в регистрах AH (старший десятичный разряд) и AL (младший разряд).
Деление также выполняется в два этапа, но в отличие от остальных команд коррекция выполняется не после, а перед выполнением операции:
· коррекция делимого с помощью команды aad, которая предполагает, что в регистрах AH и AL находится двухразрядное делимое, причем AH содержит цифру десятков, а AL – цифру единиц и обе старшие тетрады нулевые. Она формирует в AX соответствующее двоичное число;
· деление полученного в AX делимого на одноразрядный делитель, с получением частного в AL и остатка в AH.