Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 56

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 528 >> Следующая

остается неизменным; при выполнении BTS значение этого бита
устанавливается в 1; при выполнении BTR - сбрасывается в нуль; при
выполнении ВТС - инвертируется.
Команды условной установки байтов SETcc производят установку содержимого
байта в регистре или ячейке памяти r/m8, указанных в команде.
Таблица 2.19
Команды битовых и байтовых операций
Синтаксис команды Операция
ВТ r/m(16,32), г( 16,32) r/m(16,32), im8 bn -> CF, n=(r4-0) bn -> CF,
n=(im4-0)
BTS r/m{ 16,32), r{16,32) r/m(16,32), im8 bn -> CF, n=(r4-0), 1 -> bn
bn -> CF, n=(im4-0), 1 -> bn
BTR r/m(16,32), r( 16,32) bn -> CF, n=(r4-0), 0 -> bn bn -" CF, n=(im4-
0), 0 -" bn
BTC r/m(16,32), r( 16,32) r/m(l6,32), im8 bn -> CF, n=(r4-0), bn -> bn
bn -> CF, n=(im4-0), bn -> bn
BSF r(16,32), r/m(16,32) BSR r( 16,32), r/m(16,32) n1 -> r(16,32); если
r/m=0, to ZF=1 n1 -> r(16,32); если r/m=0, to ZF=1
SETcc r/m8 OFFFi -> r/m8, если cc=1, ООН -у r/m8, если cc=0
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Команды сканирования битов BSF, BSR производят анализ битов операнда г/т,
содержащегося в адресуемом регистре или ячейке памяти, и заносят значение
п1 - номер первого встреченного бита, имеющего значение единица, в
регистр-приемник г, заданный в команде. При выполнении команды BSF
сканирование начинается с младшего разряда операнда, при выполнении BSR-
со старшего разряда. Если операнд равен нулю (единичные биты
отсутствуют), то устанавливается npn3HaKZF = 1. При этом содержимое
регистра-приемника будет неопределенным. Если единичный бит найден, то
устанавливается ZF = 0.
Команды условной установки байта SETcc устанавливают определенное
значение байта, который содержится в регистре или ячейке памяти r/m,
указанных в команде. Условие установки байта определяется суффиксом сс,
который добавляется к мнемокоду команды. В соответствии с этим суффиксом
команда проверяет выполнение определенного условия (сс), которое задается
различными значениями признаков, установленных в регистре EFLAGS. Виды
проверяемых условий и соответствующие суффиксы сс указаны в табл. 2.22.
Они аналогичны условиям, используемым в командах условных пересылок
CMOVcc и условных переходов Jcc. Если условие выполняется (сс = 1), то
все разряды адресованного байта устанавливаются в единицу (записывается
OFFh), если не выполняется - все разряды байта сбрасываются в нуль
(запись 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, осуществляется его уменьшение
(автодекремент).
Если перед командами отсутствует префикс повторения, то соответствующие
операции выполняются только для одного символа в строке, адресуемого
содержимым регистров SI, DI. Префиксы повторения REP, REPE(REPZ) и
RERNE(REPNZ) обеспечивают последовательное выполнение команд над
символами строки. При этом количество повторений определяется содержимым
регистра ЕСХ или выполнением определенного условия. Так как регистр ЕСХ
имеет 32 разряда, то максимальная длина обрабатываемых строк составляет
232 символа. Префикс REP используется для последовательного выполнения
команд LODS, STOS, INS, OUTS, MOVS, префиксы REPE (синоним REPZ), REPNE
(синоним REPNZ) используются с командами CMPS и SCAS.
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
<>
О
У
и
1*1
н
Команда LODS осуществляет загрузку символа из строки-источника в
аккумулятор (AL, АХ или ЕАХ). Команда STOS заносит содержимое
аккумулятора в качестве символа в строку-приемник. Команда MOVS
пересылает символ из строки-источника в строку-приемник. При наличии
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed