Ділення чисел без знака
ЛАБОРАТОРНА РОБОТА №5 ТЕМА: Команди математичних операцій Мета роботи: Вивчення правил виконання математичних операцій. Інструменти: персональний комп’ютер, програма-емулятор Emu8086
Хід роботи Множення і ділення виконуються по-різному для чисел із знаком і без, тому в системі команд процесора x86 є окремі команди множення і ділення для чисел із знаком і для чисел без знака.
Множення чисел без знака Для множення чисел без знака призначена команда MUL. У цієї команди тільки один операнд - другий множник, який повинен знаходитися в регістрі або в пам'яті. Розташування першого множника і результату задається неявно і залежить від розміру операнда:
Відмінність множення від додавання і віднімання в тому, що розрядність результату виходить в 2 рази більше, ніж розрядність співмножників. Також і в десятковій системі - наприклад, множачи двозначне число на двозначне, ми можемо отримати в результаті максимум чотиризначне. Запис «DX: AX» означає, що старше слово результату буде знаходитися в DX, а молодше - в AX. Приклади: mul bl;AX = AL * BL mul ax;DX:AX = AX * AX
Якщо старша частина результату дорівнює нулю, то прапори CF і ОF будуть мати нульове значення. В цьому випадку старшу частину результату можна відкинути. Це властивість можна використовувати в програмі, якщо результат повинен бути такого ж розміру, як множники.
Множення чисел із знаком Для множення чисел зі знаком призначена команда IMUL. Ця команда має три форми, що розрізняються кількістю операндів:
Приклади: imul cl;AX = AL * CL imul si;DX:AX = AX * SI imul bx,ax;BX = BX * AX imul cx,-5;CX = CX * (-5) imul dx,bx,134h;DX = BX * 134h
CF = OF = 0, якщо твір поміщається в молодшій половині результату, інакше CF = OF = 1. Для другої та третьої форми команди CF = OF = 1 означає, що сталося переповнення.
Ділення чисел без знака Ділення цілих двійкових чисел – це завжди ділення з залишком! За аналогією з множенням, розмір дільника, приватного та залишку повинен бути в 2 рази менше розміру діленого. Ділення чисел без знака здійснюється за допомогою команди DIV. У цієї команди один операнд – дільник, який повинен знаходитися в регістрі або в пам'яті. Розташування діленого, частки та остачі задається неявно і залежить від розміру операнда:
При виконанні команди DIV може виникнути переривання: 1. якщо дільник дорівнює нулю; 2. якщо приватне не поміщається у відведену під нього розрядну сітку (наприклад, якщо при розподілі слова на байт приватне більше 255). Приклади: div cl;AL = AX / CL, остача в AH div di;AX = DX:AX / DI, остача в DX
Читайте также: A. Троакарна цистостомія, госпіталізація в урологічне відділення Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|