Логические команды. Арифметические команды

Арифметические команды

Базовые арифметические команды предназначены для задания арифметических операций над какими-то операндами. Любая арифметическая операция двухместная (пример, операция сложения ADD dst,src).

Cхема вычислений:

dst:= (dst)+(src).

Команды арифметических операций формируют практически всегда признаки результата операций.

Базовой арифметической операцией является арифметическое сложение (сложение двоичных кодов, т.к. сложение беззнаковое). Большинство ЭВМ не ограничивается операцией сложения, имеется еще вычитание двоичных кодов (SUB dst,src).

Операция сравнения кодов (CMP dst,src). По содержанию это команда вычитания. Фактически схема вычисления (dst)-(src). Все признаки результата по этой команде формируются, а результат никуда не заносится.

Однооперандные арифметические команды. Т.к. второй операнд имеет фиксированное значение (как правило, оно = 1), тогда команды INC dst, DEC dst, а схемы вычислений dst:= (dst)±1. Эти команды очень используемы при разработке счетчиков, индексов.

Команды умножения и деления. В системах команд малых ЭВМ эти команды отсутствуют. Формат команды:

MUL dst,src; DIV dst,src.

Если взять команды ADD и SUB, то форматы результата и операндов практически совпадают, здесь же они не совпадают принципиально. Для хранения произведения обычно используются фиксированные регистры, чаще всего это аккумулятор с расширителем. Аналогично для целочисленного деления. Если машина ориентирована на научно-технические расчеты, то требуются операции над данными с плавающей запятой и там они имеются. Говоря о малых ЭВМ, то, собственно говоря, команд с плавающей арифметикой там нет.

Команды десятичной арифметики. Основу десятичной арифметики в любых ЭВМ составляют команды двоичной арифметики. Обычно к этим командам относят команды десятичной коррекции, эти команды безадресные. Десятичная обработка состоит из двух фаз: 1) соответствующее двоичное действие; 2) коррекция с учетом десятичного числа.

Логические команды в системе команд ЭВМ играют не только вспомогательную роль, но в логических задачах могут быть основными операторами обработки. Для этого система логических операций в ЭВМ должна быть функционально полной. Операции выполняются побитно. Команды логической обработки одно и двух операндные. Одноместную операцию реализует команда отрицания NOT, она заменяет все единицы нулями, а все нули единицами. Двухоперандные логические операции реализуют команды И, ИЛИ, исключающее ИЛИ.

Пример:

Предположим, что в регистре EAX содержится шестнадцатеричное значение 0000FFFF, а в регистре EBX – значение 02FA62CA. Команда AND EAX,EBX очистит левую половину регистра EBX, заполнив ее нулями, а правую его часть оставит без изменений. В результате в EBX окажется значение 000062CA.

Чаще всего логические операции применяются для решения трех задач:

1. Маскирование и выделение определенных разрядов операндов. Реализуется с помощью операции И с заданной маской.

2. Формирование требуемых значений в требуемых битах (с помощью команды ИЛИ).

3. Инвертирование определенных битов (с помощью команды NOT).


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



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