Page 87 - 149
P. 87
Для корекції результату віднімання розпакованих двійково-десяткових
чисел використовується команда AAS упакованих DAS. Відмінність
алгоритму корекції віднімання полягає в тому, що при наявності запозичення
зі старшої тетради з поточної необхідно відняти 6, тому що двійкове
запозичення дорівнює 16, а не 10. Зручність опрацювання багаторозрядних
двійково-десяткових чисел забезпечується установкою ознаки переносу, як
при додаванні.
Команди СМР, що служать для порівняння даних, працюють так само, як
команди SUB, проте результат в операнд-приймач не надходить, змінюється
тільки стан ознак результату.
У групу команд множення входять команди MUL для множення
порядкових чисел і IMUL для множення цілих чисел (із знаком). Для
однобайтових даних один із співмножників повинний бути в AL, результат
знаходиться в регістрі АХ. Для двобайтових даних один із співмножників
знаходиться в регістрі АХ, молодше слово результату - у АХ, старше - у DX.
Після виконання команд множення встановлюються ознаки переносу і
переповнення.
У групу команд ділення входять команди DIV для ділення порядкових
чисел і IDIV для ділення цілих чисел. Ділене займає регістр АХ при W=0 або
регістри DX (старше слово) і АХ при W=1. Ціла частина дільника
розміщається в регістр АН (АХ при W==1), залишок - в регістр AH (DH при
W=1). Якщо при діленні порядкових чисел дільник більше 255 (65535 при
W=1), або при діленні цілих чисел модуль дільника більше 127 (32767 при
W=1), або дільник дорівнює 0, то виникає внутрішнє переривання за
помилкою ділення. Після виконання команди ділення ознаки невизначені.
Таблиця 4.16
Мнемоніка Алгоритми
Команди додавання
ADD EE+R; RR+E;
EE+D; EE+Dext
ADC EE+CF+R;
RR+CF+E;
EE+CF+D;
EE+CF+Dext
INC EE+1
AAA,DAA Корекція результату додавання розпакованих і
упакованих двійково-десяткових чисел
Команди віднімання
88