Конспект лекций Системное программирование (семестр 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.
TEST
(TEST operand)
Логическое И
Схема команды: | test приемник,источник |
Назначение: операция логического сравнения операндов приемник и источник размерностью байт, слово или двойное слово.
Синтаксис
Алгоритм работы:
- выполнить операцию логического умножения над операндами приемник и источник: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0;
- установить флаги.
Состояние флагов после выполнения команды:
11 | 07 | 06 | 02 | 00 |
OF | SF | ZF | PF | CF |
0 | r | r | r | 0 |
Применение:
Команда test используется для логического умножения двух операндов. Результат операции, в отличие от команды and, никуда не записывается, устанавливаются только флаги. Эту команду удобно использовать для получения информации о состоянии заданных битов операнда приемник. Для анализа результата используется флаг zf, который равен 1, если результат логического умножения равен нулю.
test al,01h jnz m1 ;переход, если нулевой бит al равен 1 |
См. также: урок 9 и команды or, xor, and, bt
XADD
(eXchange and ADD)
Обмен и сложение
Схема команды: | xadd приемник,источник |
Назначение: суммирование и обмен двух значений.
Синтаксис
Алгоритм работы:
- копировать содержимое операнда приемник в операнд источник;
- выполнить сложение (приемник+источник);
- поместить сумму в операнд приемник.
Состояние флагов после выполнения команды:
11 | 07 | 06 | 04 | 02 | 00 |
OF | SF | ZF | AF | PF | CF |
r | r | r | r | r | r |
Применение:
Команда xadd используется для выполнения операции обмена и сложения двух операндов.
mov al,08h mov bl,01h xadd al,bl ;al=09h, bl=08h |
См. также: уроки 7, 8 и команды add, xchg
XCHG
(eXCHanGe)
Обмен
Схема команды: | xchg операнд_1,операнд_2 |
Назначение: обмен двух значений между регистрами или между регистрами и памятью.
Синтаксис
Алгоритм работы:
обмен содержимого операнд_1 и операнд_2.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команду xchg можно использовать для выполнения операции обмена двух операндов с целью изменения порядка следования байт, слов, двойных слов или их временного сохранения в регистре или памяти. Альтернативой является использование для этой цели стека.
;поменять порядок следования байт в слове ch1 label byte dw 0f85ch ... mov al,ch1 xchg ch1+1,al mov ch1,al |
См. также: урок 7 и команды bswap, cmpxchg, xadd