Конспект лекций Системное программирование (семестр 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.
NOP
(No OPeration)
Нет операции
Схема команды: | nop |
Назначение: пустая команда.
Синтаксис
Алгоритм работы:
не производит никаких действий.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команда nop, занимая один байт, может использоваться для резервирования места в сегменте кода или организации программной задержки. В качестве иллюстрации можно обратиться к примеру, приведенному в описании команды hlt. В этом примере команду nop можно использовать вместо jmp $+2. Назначение jmp $+2 в этом фрагменте — задержка для синхронизации работы микропроцессора и аппаратуры компьютера.
NOT
(NOT operand)
Инвертирование операнда
Схема команды: | not источник |
Назначение: инвертирование всех битов операнда источник.
Синтаксис
Алгоритм работы:
инвертировать все биты операнда источника: из 1 в 0, из 0 в 1.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команду not можно использовать для изменения байта, выполняющего роль некоторого флага, с целью отслеживания некоторых логических условий в программе. Но такой способ не оптимален, эту ситуацию мы обсуждали в книге на уроках 9 и 12.
flag db 0ffh ;значение флага — истина ... cycl: ... cmp flag,0 je m1 ... m1: not flag ;установить флаг в истину |
См. также: уроки 9, 12 и команду neg
OR
(logical OR)
Логическое включающее ИЛИ
Схема команды: | or приемник,маска |
Назначение: операция логического ИЛИ над битами операнда назначения.
Синтаксис
Алгоритм работы:
- выполнить операцию логического ИЛИ над битами операнда назначения, используя в качестве маски второй операнд — маска. При этом бит результата равен 0, если соответствующие биты операндов маска и назначения равны 0, в противном случае бит равен 1;
- записать результат операции в источник (операнд маска остается неизменным);
- установить флаги.
Состояние флагов после выполнения команды:
11 | 07 | 06 | 04 | 02 | 00 |
OF | SF | ZF | AF | PF | CF |
0 | r | r | ? | r | 0 |
Применение:
Команду or можно использовать для работы с операндами на уровне битов. Типичное использование команды — установка определенных разрядов первого операнда в единицу.
mov al,01h or bl,al ;установить нулевой бит в 1 |
См. также: урок 9 и команды and, xor, not
OUT
(OUT operand to port)
Вывод операнда в порт
Схема команды: | out ном_порта,аккумулятор |
Назначение: вывод значения в порт ввода-вывода.
Синтаксис
Алгоритм работы:
Передать байт, слово, двойное слово из регистра al/ax/eax в порт, номер которого определяется первым операндом.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команда применяется для прямого управления оборудованием компьютера посредством портов. Номер порта задается первым операндом в виде непосредственного значения или значения в регистре dx. Непосредственным значением можно задать порт с номером в диапазоне 0...255. Для указания порта с большим номером используется регистр dx. Размер данных определяется размерностью второго операнда и может быть байтом, словом или двойным словом.
out 64h,al |
См. также: уроки 2, 7, 16, 17 и команды in, ins/insb/insw/insd, outs