October 18 2017 02:50:50
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команды сканирования битов
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Таблица 2.19 Команды битовых и байтовых операций

Синтаксис команды Операция
ВТ r/m(16,32), r/m( 16,32),
r(16,32) im8
bn ® CF,
bn ® CF,
n=(r4-0)
n=(im4-0)
BTS r/m(16,32), r/m( 16,32),
r(16,32) im8
bn ® CF,
bn ® CF,
n=(r4-0), 1 ® bn
n=(im4-0), 1 ® bn
BTR r/m(16,32),
r(16,32)
bn ® CF,
bn ® CF,
n=(r4-0), 0 ® bn
n=(im4-0), 0 ® bn
ВТС r/m(16,32) r/m(16,32)
r(16,32) im8
bn ® CF,
bn ® CF,
n=(r4-0), bn ® bn
n=(im4-0), bn ® bn
BSF BSR r(16,32), r/m(16,32)
r(16,32), r/m(16,32)
n1 ® r(16,32);
n1 ® r(16,32);
если r/m=0, то ZF=1
если r/m=0, то ZF=1
SETcc r/m8 0FFH ® r/m8, если сс=1,
00Н    ® r/m8, если сс=0

Команды сканирования битов BSF, BSR производят анализ битов операнда r/m, содержащегося в адресуемом регистре или ячейке памяти, и заносят значение n1 - номер первого встреченного бита, имеющего значение единица, в регистр-приемник r, заданный в команде. При выполнении команды BSF сканирование начинается с младшего разряда операнда, при выполнении BSR-co старшего разряда. Если операнд равен нулю (единичные биты отсутствуют), то устанавливается признак ZF = 1. При этом содержимое регистра-приемника будет неопределенным. Если единичный бит найден, то устанавливается ZF = 0.

Команды условной установки байта SETcc устанавливают определенное значение байта, который содержится в регистре или ячейке памяти r/m, указанных в команде. Условие установки байта определяется суффиксом cc, который добавляется к мнемокоду команды. В соответствии с этим суффиксом команда проверяет выполнение определенного условия (ее), которое задается различными значениями признаков, установленных в регистре EFLAGS. Виды проверяемых условий и соответствующие суффиксы ее указаны в табл. 2.22. Они аналогичны условиям, используемым в командах условных пересылок CMOVcc и условных переходов Jcc. Если условие выполняется (cc = 1), то все разряды адресованного байта устанавливаются в единицу (записывается 0FFh), если не выполняется - все разряды байта сбрасываются в нуль (запись 00h).

2.2.5. КОМАНДЫ ОПЕРАЦИЙ СО СТРОКАМИ СИМВОЛОВ

Команды данной группы приведены в табл. 2.20. При выполнении этих команд символом является 8-, 16- или 32-разрядный операнд, являющийся элементом строки, которая представляет последовательность символов, расположенных в смежных ячейках памяти. При программировании на языке Ассемблера мнемокоды команд дополняются суффиксом В (байт), W (слово) или D (двойное слово), указывающим разрядность обрабатываемых операндов (символов).

Различаются два типа строк символов. Строка-источник обычно (по умолчанию) располагается в сегменте DS. Размещение этой строки в других сегментах (см. табл. 2.8) обеспечивается путем введения соответствующего префикса SEG перед командой обработки строк символов. Относительный адрес символа в строке задается содержимым регистра SI. Полный указатель адреса для символа строки-источника имеет вид DS:[SI], если не используется префикс замены сегмента SEG. Строка-приемник всегда размещается в сегменте ES (см. табл. 2.8). Относительный адрес символа в этой строке задается содержимым регистра DI, поэтому полный указатель адреса для символа строки-приемника имеет вид ES:[SI]. После выполнения очередной команды со строкой содержимое SI и DI изменяется на + 1 или - 1, +2 или - 2, +4 или - 4 в зависимости от разрядности символа (8, 16 или 32). Направление изменения адресов определяется значением признака DF в регистре EFLAGS. Если значение DF = 0, осуществляется увеличение адреса (автоинкремент) на 1,2 или 4; если DF = 1, осуществляется его уменьшение (автодекремент).

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,254,950 уникальных посетителей