Програмування на мові Асемблер
neg ax ; одержання двійкового доповнення ах
neg [value] ;одер. Двійкового доповнення [value]
2) Більшість процесорів цифрових виконують порівняння шляхом віднімання одного значення з другого, а потім порівнюють результат. При цьому встановлюють біти різних прапорів описуючи тим самим результат наприклад, є він 0, від’ємним або додатнім. Cmp виконує віднімання аналогічно ком. Sub, проте зберігає при цьому тільки значення прапорів, які можуть перевірятись іншими командами,
МНОЖЕННЯ І ДІЛЕННЯ БЕЗНАКОВИХ ЗНАЧЕНЬ.
МНОЖЕННЯ І ДІЛЕННЯ ЗНАКОВИХ ЗНАЧЕНЬ.
Для правильного виконання множення і ділення вимагається бути уважним. Потрібно слідкувати за тим, щоб помістити значення в потрібні регістри. Після виконання операції потрібно уважно одержувати результат.
За роботою команд mul, imul, div, i idiv прослідкуємо на прикладі програми MULTDIV.ASM
Команди знакового множення (imul) і ділення (idiv)
працюють аналогічно mul div і використають ті ж регістри.(Буква «i» в символічному імені використовується для цілих чисел, показуючи, що допускаються як додатні так і від’ємні значення)
Різні допустимі діапазони значень.
Знаковий байт змінюється від -128 до +127
Знакове слово змінюється -32768 до 32767
в програмі, в якій використовується imul i idiv потрібно пам’ятати що:
1) від’ємний результат представляється в двійковому додатньому коді,
2) Будь-який залишок має той же знак, щой частка
3) Якщо попробувати виконати ділення на 0, і якщо результат від ділення не буде поміщатись в заданий операнд призначення, то буде генеруватись переривання ділення на 0, яке зупинить програму.
ПЕРЕТВОРЕННЯ БАЙТІВ , СЛІВ І ПОДВІЙНИХ СЛІВ
При використанні знакових двійкових значень часто потрібно перетворювати 8-бітові значення байтів в 16-бітові слова, зокрема, для підготовки до множення і ділення. Ці перетворення виконувати складно, тому для спрощення введено команди:
cbw-перетворити байт в слово
cwb-перетворити слово в двійкове слово
Команда cbw розширює 8- бітове значення до 16-бітового
Команда cwb розширює 16-бітове значення до 32-бітового двійкового слова.