KnigaRead.com/
KnigaRead.com » Научные и научно-популярные книги » Техническая литература » А. Цветкова - Информатика и информационные технологии

А. Цветкова - Информатика и информационные технологии

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн А. Цветкова, "Информатика и информационные технологии" бесплатно, без регистрации.
Назад 1 ... 11 12 13 14 15 Вперед
Перейти на страницу:

Cледующий набор команд, поддерживающих работу с логическими данными:

1) and операнд_1, операнд_2 – операция логического умножения;

2) or операнд_1, операнд_2 – операция логического сложения;

3) xor операнд_1, операнд_2 – операция логического исключающего сложения;

4) test операнд_1, операнд_2 – операция «проверить» (способом логического умножения)

5) not операнд – операция логического отрицания.

а) для установки определенных разрядов (бит) в 1 применяется команда or операнд_1, операнд_2;

б) для сброса определенных разрядов (бит) в 0 применяется команда and операнд_1, операнд_2;

в) команда xor операнд_1, операнд_2 применяется:

– для выяснения того, какие биты в операнд_1 и операнд_2 различаются;

– для инвертирования состояния заданных бит в операнд_1.

Для проверки состояния заданных бит применяется команда test операнд_1, операнд_2 (проверить операнд_1).

Результатом команды является установка значения флага нуля zf:

1) если zf = 0, то в результате логического умножения получился нулевой результат, т. е. один единичный бит маски, который не совпал с соответствующим единичным битом операнд1;

2) если zf = 1, то в результате логического умножения получился ненулевой результат, т. е. хотя бы один единичный бит маски совпалс соответствующим единичным битом операнд1.

Все команды сдвига перемещают биты в поле операнда влево или вправо в зависимости от кода операции. Все команды сдвига имеют одинаковую структуру – коп операнд, счетчиксдвигов.

56. Команды передачи управления

То, какая команда программы должна выполняться следующей, микропроцессор узнает по содержимому пары регистров cs:(e)ip:

1) cs – сегментный регистр кода, в котором находится физический адрес текущего сегмента кода;

2) eip/ip – регистр указателя команды, в нем находится значение смещения в памяти следующей команды, подлежащей выполнению.

Безусловные переходы

Что должно подвергнуться модификации, зависит:

1) от типа операнда в команде безусловного перехода (ближний или дальний);

2) от указания перед адресом перехода модификатора; при этом сам адрес перехода может находиться либо непосредственно в команде (прямой переход), либо в регистре памяти (косвенный переход).

Значения модификатора:

1) near ptr – прямой переход на метку;

2) far ptr – прямой переход на метку в другом сегменте кода;

3) word ptr – косвенный переход на метку;

4) dword ptr – косвенный переход на метку в другом сегменте кода.

Команда безусловного перехода jmp

jmp [модификатор] адрес_перехода

Процедура или подпрограмма, – это основная функциональная единица декомпозиции некоторой задачи. Процедура представляет собой группу команд.

Условные переходы

Микропроцессор имеет 18 команд условного перехода. Эти команды позволяют проверить: 1) отношение между операндами со знаком («больше – меньше»);

2) отношение между операндами без знака

(«выше – ниже»); 3) состояния арифметических флагов ZF, SF, CF, OF, PF (но не AF).

Команды условного перехода имеют одинаковый синтаксис: jcc меткаперехода

Команда сравнения cmp имеет интересный принцип работы. Он абсолютно такой же, как и у команды вычитания – sub операнд_1, операнд_2.

Команда cmp так же, как и команда sub, выполняет вычитание операндов и устанавливает флаги. Единственное, чего она не делает – это запись результата вычитания на место первого операнда.

Синтаксис команды cmp – cmp операнд_1, операнд_2 (compare) – сравнивает два операнда и по результатам сравнения устанавливает флаги.

Организация циклов

Организовать циклическое выполнение некоторого участка программы можно, к примеру, используя команды условной передачи управления или команду безусловного перехода jmp:

1) loop меткаперехода (Loop) – повторить цикл. Команда позволяет организовать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла;

2) loope/loopz меткаперехода

Команды loope и loopz – абсолютные синонимы;

3) loopne/loopnz меткаперехода

Команды loopne и loopnz также абсолютные синонимы. Команды loope/loopz и loopne/loopnz по принципу своей работы являются взаимообратными.

Назад 1 ... 11 12 13 14 15 Вперед
Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*