Програмування на мові Асемблер, Детальна інформація
Програмування на мові Асемблер
МНОЖЕННЯ І ДІЛЕННЯ БЕЗНАКОВИХ ЗНАЧЕНЬ.
МНОЖЕННЯ І ДІЛЕННЯ ЗНАКОВИХ ЗНАЧЕНЬ.
Для правильного виконання множення і ділення вимагається бути уважним. Потрібно слідкувати за тим, щоб помістити значення в потрібні регістри. Після виконання операції потрібно уважно одержувати результат.
За роботою команд mul, imul, div, i idiv прослідкуємо на прикладі програми MULTDIV.ASM
Команди знакового множення (imul) і ділення (idiv)
працюють аналогічно mul div і використають ті ж регістри.(Буква «i» в символічному імені використовується для цілих чисел, показуючи, що допускаються як додатні так і від’ємні значення)
Різні допустимі діапазони значень.
Знаковий байт змінюється від -128 до +127
Знакове слово змінюється -32768 до 32767
в програмі, в якій використовується imul i idiv потрібно пам’ятати що:
від’ємний результат представляється в двійковому додатньому коді,
Будь-який залишок має той же знак, щой частка
Якщо попробувати виконати ділення на 0, і якщо результат від ділення не буде поміщатись в заданий операнд призначення, то буде генеруватись переривання ділення на 0, яке зупинить програму.
ПЕРЕТВОРЕННЯ БАЙТІВ , СЛІВ І ПОДВІЙНИХ СЛІВ
При використанні знакових двійкових значень часто потрібно перетворювати 8-бітові значення байтів в 16-бітові слова, зокрема, для підготовки до множення і ділення. Ці перетворення виконувати складно, тому для спрощення введено команди:
cbw-перетворити байт в слово
cwb-перетворити слово в двійкове слово
Команда cbw розширює 8- бітове значення до 16-бітового
Команда cwb розширює 16-бітове значення до 32-бітового двійкового слова.
Ці команди виконують однакові дії,за винятком кількості опрацьованих бітів.
Потрібно пам’ятати про обмеження:
Початкове значення для cbw повинно знаходитись в регістрі al 16-бітовий результат завжди поміщається в ах.
Початкове значення для cwd повинно зберігатись регістр ах 32-бітовий результат завжди поміщається в dx i ax.Як правило cbw i cwd використовуються разом з командами imul i idiv при необхідності ділення та множення байтової величини на слово.
Проте ці команди можна використовувати і в інших цілях.
МНОЖЕННЯ І ДІЛЕННЯ ЗНАКОВИХ ЗНАЧЕНЬ.
Для правильного виконання множення і ділення вимагається бути уважним. Потрібно слідкувати за тим, щоб помістити значення в потрібні регістри. Після виконання операції потрібно уважно одержувати результат.
За роботою команд mul, imul, div, i idiv прослідкуємо на прикладі програми MULTDIV.ASM
Команди знакового множення (imul) і ділення (idiv)
працюють аналогічно mul div і використають ті ж регістри.(Буква «i» в символічному імені використовується для цілих чисел, показуючи, що допускаються як додатні так і від’ємні значення)
Різні допустимі діапазони значень.
Знаковий байт змінюється від -128 до +127
Знакове слово змінюється -32768 до 32767
в програмі, в якій використовується imul i idiv потрібно пам’ятати що:
від’ємний результат представляється в двійковому додатньому коді,
Будь-який залишок має той же знак, щой частка
Якщо попробувати виконати ділення на 0, і якщо результат від ділення не буде поміщатись в заданий операнд призначення, то буде генеруватись переривання ділення на 0, яке зупинить програму.
ПЕРЕТВОРЕННЯ БАЙТІВ , СЛІВ І ПОДВІЙНИХ СЛІВ
При використанні знакових двійкових значень часто потрібно перетворювати 8-бітові значення байтів в 16-бітові слова, зокрема, для підготовки до множення і ділення. Ці перетворення виконувати складно, тому для спрощення введено команди:
cbw-перетворити байт в слово
cwb-перетворити слово в двійкове слово
Команда cbw розширює 8- бітове значення до 16-бітового
Команда cwb розширює 16-бітове значення до 32-бітового двійкового слова.
Ці команди виконують однакові дії,за винятком кількості опрацьованих бітів.
Потрібно пам’ятати про обмеження:
Початкове значення для cbw повинно знаходитись в регістрі al 16-бітовий результат завжди поміщається в ах.
Початкове значення для cwd повинно зберігатись регістр ах 32-бітовий результат завжди поміщається в dx i ax.Як правило cbw i cwd використовуються разом з командами imul i idiv при необхідності ділення та множення байтової величини на слово.
Проте ці команди можна використовувати і в інших цілях.
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021