Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
913.41 Кб
Скачать

1. Множення цілих чисел

Множення двох цілих чисел без знаку MUL

Схема команди: MUL множник

Алгоритм роботи

Команди вимагає явної вказівки місця розташування тільки одного співмножника, який може бути розташований у комірці пам'яті або регістрі. Місце розташування другого співмножника фіксоване і залежить від розміру першого співмножника:

  • якщо операнд, зазначений у команді, — байт, то другий співмножник розташовується в AL;

  • якщо операнд, зазначений у команді, — слово, то другий співмножник розташовується в AX;

  • якщо операнд, зазначений у команді — подвійне слово, то другий співмножник повинний розташовуватися в EAX.

Результат множення міститься також у фіксоване місце, обумовлене розміром співмножників:

  • при множенні байтів результат міститься в AX;

  • при множенні слів результат міститься в пари DX:AX;

  • при множенні подвійних слів результат міститься в пари EDX:EAX.

Стан ознак після виконання команди MUL : якщо старша половина результату нульова тоді OF та CF встановлюються 0, в противному випадку 1, значення SF, ZF, AF та PF – невизначені.

Множення двох цілих чисел зі знаком IMUL

IMUL множник

IMUL множник1,множник2 ; для і386 і вище

IMUL результат,множник1,множник2 ; для і386 і вище

Алгоритм роботи

Алгоритм команди з одним операндом співпадає з алгоритмом команди IMUL. Команди з двома і трьома операндами однозначно визначають розташування результату і співмножників у такий спосіб:

  • у команді з двома операндами перший операнд визначає місце розташування першого співмножника. На його місце згодом буде записаний результат. Другий операнд визначає місце розташування другого співмножника;

  • у команді з трьома операндами перший операнд визначає місце розташування результату, другий операнд — місце розташування першого співмножника, третій операнд може бути безпосередньо заданим значенням розміром у байт, чи слово подвійне слово.

Стан ознак після виконання команди IMUL: якщо розмір результату відповідає регістру призначення, тоді встановлює в нуль ознаки OF та CF, в противному значення ознак 1, значення SF, ZF, AF та PF – невизначені.

2. Ділення цілих чисел

Ділення двох цілих чисел без знаку DIV та зі знаком IDIV.

Схема команди: DIV дільник ;без знака

IDIV дільник ; зі знаком

Алгоритм роботи:

Для команди необхідно задати два операнди — ділене і дільник. Ділене задається неявно і розмір його залежить від розміру дільника, що вказується в команді:

  • якщо дільник розміром у байт, то ділене повинне бути розташоване в регістрі AX. Після операції частка міститься в AL, а залишок — у AH;

  • якщо дільник розміром у слово, то ділене повинне бути розташоване в парі регістрів DX:AX, причому молодша частина діленого знаходиться в AX. Після операції частка міститься в AX, а залишок — у DX;

  • якщо дільник розміром у подвійне слово, то ділене повинне бути розташоване в парі регістрів EDX:EAX, причому молодша частина діленого знаходиться в EAX. Після операції частка міститься в EAX, а залишок — у EDX.

Для команди IDIV залишок завжди має знак діленого. Знак частки залежить від стану знакових бітів (старших розрядів) діленого і дільника.

Стан ознак після виконання команди: OF, CF, SF, ZF, AF та PF – невизначені.

Результатом ділення є частка і залишок від ділення. При виконанні операції ділення можливе виникнення виняткової ситуації: 0 — помилка ділення. Ця ситуація виникає в одному з двох випадків: дільник дорівнює 0 або частка занадто велика для його розміщення в регістрі EAX/AX/AL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]