DIV (DIVide unsigned) Деление беззнаковое

Схема команды: div делитель

Назначение: выполнение операции деления двух двоичных беззнаковых значений. Алгоритм работы: Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно и размер его зависит от размера делителя, который указывается в команде: если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah; если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx; если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx.

Применение: Команда выполняет целочисленное деление операндов с выдачей результата деления в виде частного и остатка от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

IDIV (Integer DIVide) Деление целочисленное со знаком.

Схема команды: idiv делитель

Назначение: операция деления двух двоичных значений со знаком.

Алгоритм работы: Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно, и размер его зависит от размера делителя, местонахождение которого указывается в команде: если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah; если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx; если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx; Остаток всегда имеет знак делимого. Знак частного зависит от состояния знаковых битов (старших разрядов) делимого и делителя.

Применение: Команда выполняет целочисленное деление операндов с учетом их знаковых разрядов. Результатом деления являются частное и остаток от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

Опишите состав и назначение логических команд мп.

AND (logical AND) Логическое И.

Схема команды: and приемник,источник

Назначение: операция логического умножения для операндов приемник и источник размерностью байт, слово или двойное слово.

Алгоритм работы: выполнить операцию логического умножения над операндами источник и приемник: каждый бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0; записать результат операции в приемник;

установить флаги.

Применение: Команда and используется для логического умножения двух операндов. Результат операции помещается по адресу первого операнда. Эту команду удобно использовать для принудительной установки или сброса определенных битов операнда.
OR (logical OR) Логическое включающее ИЛИ.

Схема команды: or приемник,маска

Назначение: операция логического ИЛИ над битами операнда назначения. Алгоритм работы: выполнить операцию логического ИЛИ над битами операнда назначения, используя в качестве маски второй операнд — маска. При этом бит результата равен 0, если соответствующие биты операндов маска и назначения равны 0, в противном случае бит равен 1; записать результат операции в источник (операнд маска остается неизменным); установить флаги.

Применение: Команду or можно использовать для работы с операндами на уровне битов. Типичное использование команды — установка определенных разрядов первого операнда в единицу.


XOR Логическое исключающее ИЛИ ASCII-коррекция после сложения

Схема команды: xor приемник,источник

Назначение: операция логического исключающего ИЛИ над двумя операндами размерностью байт, слово или двойное слово. Алгоритм работы: выполнить операцию логического исключающего ИЛИ над операндами: бит результата равен 1, если значения соответствующих битов операндов различны, в остальных случаях бит результата равен 0; записать результат сложения в приемник; установить флаги.

Применение: Команда xor используется для выполнения операции логического исключающего ИЛИ двух операндов. Результат операции помещается в первый операнд. Эту операцию удобно использовать для инвертирования или сравнения определенных битов операндов.

NOT (NOT operand) Инвертирование операнда.

Схема команды: not источник

Выполнение команды не влияет на флаги. Назначение: нвертирование всех битов операнда источник. Алгоритм работы: инвертировать все биты операнда источника: из 1 в 0, из 0 в 1. Применение: Команду not можно использовать для изменения байта, выполняющего роль некоторого флага, с целью отслеживания некоторых логических условий в программе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: