Конспект лекций Системное программирование (семестр 2) Возле названия каждой лекции написано число пар, в течение которых она будет читаться (+ ср обозначает
Вид материала | Конспект |
См. также Схема команды См. также См. также |
- 8Б класс Химия Пар. 30 (№1-3), Пар. 31 (№1-5), рабочая тетрадь эти же темы Биология, 8.14kb.
- Рабочая программа учебной дисциплины (модуля) Системное программирование, 108.12kb.
- Смирнягин курс США население Лекция население США этой теме будут посвящены три лекции, 288.75kb.
- Инструкция подумайте о ситуациях, в которых Ваши желания отличаются от желаний другого, 98.01kb.
- Лекция 8 Системное программирование. Системное проектирование взаимодействия процессов., 225.21kb.
- Программа лекций Будущее начинается сегодня! После каждой лекции конкурс с розыгрышем, 75.64kb.
- Программа лекций Будущее начинается сегодня! После каждой лекции конкурс с розыгрышем, 73.71kb.
- Конспект лекций по курсу "Информатика и использование компьютерных технологий в образовании", 1797.24kb.
- Календарно-тематический план лекций по факультетской терапии 4 курс (8 семестр) специальность, 119.31kb.
- Программа вступительного экзамена по специальности 05. 13. 18 Математическое моделирование,, 115.33kb.
BSF
(Bit Scan Forward)
Побитное сканирование вперед
Схема команды: | bsf результат,источник |
Назначение: для проверки наличия единичных битов в операнде источник.
Синтаксис
Алгоритм работы:
- просмотр битов операнда источник, начиная с бита 0 и заканчивая битом 15/31, до тех пор, пока не встретится единичный бит;
- если встретился единичный бит, то флаг zf устанавливается в 0 и в регистр первого операнда записывается номер позиции, где встретился единичный бит. Диапазон значений зависит от разрядности второго операнда: для 16-разрядного операнда — это 0...15; для 32-разрядного — это 0...31;
- если единичных битов нет, то флаг zf устанавливается в 1.
Состояние флагов после выполнения команды:
06 |
ZF |
r |
Применение:
Команду bsf используют при работе на битном уровне для определения позиции в операнде крайних справа единичных битов.
Например, сдвинем содержимое регистра bx вправо таким образом, чтобы нулевой бит стал единичным:
.386 mov bx,0002h ;bx=0000 0010b ... bsf cx,bx ;cx=0001h jz null shr bx,cl ;bx=0000 0001b ... null: |
См. также: урок 9, 12 и команду bsr
BSR
(Bit Scan Reverse)
Побитное сканирование назад
Схема команды: | bsr результат,источник |
Назначение: проверка наличия единичных битов в операнде источник.
Синтаксис
Алгоритм работы:
- просмотр битов операнда источник, начиная со старшего бита 15/31 и заканчивая битом 0, до тех пор, пока не встретится единичный бит;
- если встретился единичный бит, флаг zf устанавливается в 0 и в регистр первого операнда записывается номер позиции (отсчет осуществляется относительно нулевой позиции), где встретился самый старший единичный бит. Диапазон значений зависит от разрядности второго операнда: для 16-разрядного операнда это 0...15; для 32-разрядного — 0...31;
- если единичных битов нет, флаг zf устанавливается в 1.
Состояние флагов после выполнения команды:
06 |
ZF |
r |
Применение:
Команду bsr используют при работе на битном уровне для определения позиции крайних слева единичных битов.
Например, сдвинем содержимое регистра bx вправо таким образом, чтобы старший единичный бит исходного значения в bx переместился в нулевую позицию:
.386 mov bx,41h ... bsr cx,bx ;cx=06h jz null shr bx,ax ;bx=0001h ... null:... |
См. также: уроки 9, 12 и команду bsf
BSWAP
(Byte SWAP)
Перестановка байтов
Схема команды: | bswap источник |
Назначение:
- изменение порядка следования байтов;
- переход от одной формы адресации к другой.
Под формой адресации здесь понимается принцип "младший байт по младшему адресу" или обратный ему. Существует ряд систем, например использующих микропроцессоры Motorola или большие ЭВМ, где применяется принцип размещения многобайтовых значений обратный тому, который используется в микропроцессорах Intel. Поэтому эту команду можно использовать для разработки программ-конверторов между подобными платформами и IBM РС.
Синтаксис
Алгоритм работы: Схема алгоритма
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команду bswap используют для изменения формы адресации. В качестве операнда может быть указан только 32-разрядный регистр. Эта команда используется в моделях микропроцессоров, начиная с i486.
.486 mov ebx,1a2c345fhh bswap ebx ;ebx=5f342c1ah |
См. также: урок 7, и команду xchg