Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

A. Команды умножения

Читайте также:
  1. Quot;Однако подали команду на поднятие мощности вторично. А повторные команды выполняются беспрекословно".
  2. Заблаговременная подготовка управленческой команды
  3. Задачи на теоремы сложения и умножения вероятностей Вероятность хотя бы одного события (для студентов)
  4. Извлечение кода команды, данных из памяти или внешнего устройства (Ml).
  5. Каждая команда представляет 1-2 показательных номера для шоу-программы. Зарубежные команды должны иметь свой государственный флаг.
  6. Как Вы выбираете людей для своей команды?

Команды умножения — одноадресные. Указывается только SRC (множитель); DST (множимое) берется строго определенным образом.

- MUL src — умножение (multiply — умножение без знака). Выполняет умноже­ние беззнакового множимого (8 или 16 бит) на беззнаковый множитель (8 или 16 бит). Команда одноадресная — указывается только SRC (множитель); DST (мно­жимое) берется строго определенным образом. SRC может быть представлен оператором типа r или m (i — нельзя). Если формат SRC — байт, то множимое (байт) в AL, произведение (слово) будет в АХ; если формат SRC — слово, то мно­жимое (слово) в АХ, произведение (двойное слово) в DX: АХ (старшие два байта в DX, младшие в АХ). Команда MUL формирует флаги CF, OF; воздействует на флаги AF, PF, SF, ZF (флаги не определены).

- IMUL src — целое умножение знаковых чисел (integer multiply — умножение целых со знаком). Выполняет умножение знакового множимого (8 или 16 бит) на знаковый множитель (8 или 16 бит). Команда одноадресная — указывает­ся только SRC (множитель); DST (множимое) берется строго определенным образом. SRC может быть представлен оператором типа г или m (i — нельзя). Если формат SRC — байт, то множимое (байт) в AL, произведение (слово) бу­дет в АХ; если формат SRC — слово, то
множимое (слово) в АХ, произведение (двойное слово) в DX: АХ (старшие два байта в DX, младшие в АХ). Команда IMUL формирует флаги CF, OF; воздействует на флаги AF, PF, SF, ZF (флаги не, определены).

1. Команды деления

Команды деления — одноадресные, указывается только SRC (делитель); DST (дели­мое) берется строго определенным образом.

- DIV src - деление (divide — деление без знака). Выполняет деление беззнаково­го делимого (16 или 32 бит) на беззнаковый делитель (8 или 16 бит). Команда одноадресная — указывается только SRC (делитель); DST (делимое) берется строго определенным образом. SRC может быть представлен оператором типа г или m (1 — нельзя). Если формат SRC — байт, то делимое (слово) в АХ, частное от деле­ния (байт) будет в AL, остаток от деления (байт) в АН; если формат SRC — сло­во, то делимое (двойное слово) в DX: АХ (старшие два байта в DX, младшие в АХ), частное отделения (слово) в АХ, остаток отделения (байт) в DL. Команда DIV формирует флаг IF (IF = 1 при делении на 0 и при делении большого числа на очень малое, если частное вне диапазона); воздействует на флаги AF, CF, OF, PF, SF, ZF (флаги не определены).

- IDIV src — деление целых чисел со знаком (integer divide — деление целых чи­сел со знаком). Выполняет деление знакового делимого (16 или 32 бит) на зна­ковый делитель (8 или 16 бит). Команда одноадресная — указывается только SRC (делитель); DST (делимое) берется строго определенным образом. SRC может быть представлен оператором типа г или m (i — нельзя). Если формат SRC -байт, то делимое (слово) в АХ, частное от деления (байт) будет в AL, остаток от деления (байт) в АН; если формат SRC — слово, то делимое (двойное слово) в DX: АХ (старшие два байта в DX, младшие в АХ), частное от деления (сло­во) в АХ, остаток отделения (байт) в DL. Команда IDIV формирует флаг IF (IF = 1 при делении на 0 и при делении большого числа на очень малое, если частное вне диапазона); воздействует на флаги AF, CF, OF, PF, SF, ZF (флаги не определены).

a. Логические команды

Это двухадресные команды, они используются для сравнения, сброса и установки битов операнда в операциях преобразования кодов и при выполнении арифмети­ческих операций в кодах ASCII.

- OR dst,src — логическое сложение (or — или). Команда выполняет поразряд­ную дизъюнкцию (логическое сложение — операцию «ИЛИ») битов двух опе­рандов; устанавливает 1 в тех битах операнда dst, в которых была 1 хотя бы у одного из исходных операндов. Операнды dst и src должны иметь одинако­вый формат (оба или байт, или слово) и могут быть: src типа r, m, i; dst типа r, m (невозможно rsegm и нельзя, чтобы оба типа были m). Команда OR устанавливает OF=0 и CF=0; формирует PF, SF, ZF; значение AF не определено.

- AND dst. src — логическое умножение (and — и). Команда выполняет поразряд­ную конъюнкцию (логическое умножение — операцию «И») битов двух опе­рандов; устанавливает 1 в тех битах операнда dst, в которых у обоих исходных операндов были 1. Операнды dst и src должны иметь одинаковый формат (оба, или байт, или слово) и могут быть: src типа r, m, i; dst типа r, m (невозможно rsegm и нельзя, чтобы оба типа были m). Флаги: команда устанавливает OF=0 и CF=0; формирует PF, SF, ZF; значение AF не определено.

i. Команды безусловной передачи данных

JMP opr — команда безусловной передачи управления (jump unconditionally — пе­рейти безусловно). Операнд OPR может быть задан прямым или косвенным адресом:

- по прямому адресу: JMP метка

Если метка в том же сегменте, что и команда JMP, переход считается внутрен­ним (near),
если не в том же сегменте — переход внешний (far). В самой коман­де JMP разницы нет; тип перехода определяется видом метки: после метки для внутреннего перехода ставится двоеточие:. Транслятор по таблице меток и их адресов сам определяет атрибуты near или far и соответственно транслирует команду передачи управления в более короткую или более длинную команду (более длинную, так как надо менять не только содержимое смещения IP, но и регистра сегментов CS). Несколько сократить длину команды может указа­ние программиста «JMP short метка» о том, что метка не далее ±128 байт от команды JMP (это указание не обязательно, но если оно есть и ошибочно, то транс­лятор выдаст ошибку).

- по косвенному адресу. Косвенный адрес может быть задан: в регистре: JMP r или в памяти: JMP символьное_имя;

- в памяти с косвенной адресацией: JMP near ptr [SI]; JMP far ptr [ВХ] и т.д.

В последних двух командах near ptr и far ptr указывать обязательно, так как какое слово содержится в регистре SI — обычное или двойное, — ассемблер заранее не знает и ему нужно помочь.


Дата добавления: 2015-12-07; просмотров: 175 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.011 сек.)