• Введение
  • - Ассемблер. Введение.

  • Глава 1. Архитектура реального режима
  • - Память и процессор

    - Распределение адресного пространства

    - Регистры процессора

    - Сегментная структура программ

    - Стек

    - Система прерываний

    - Система ввода-вывода

  • Глава 2. Основы программирования
  • - Подготовка и отладка программы

    - Представление данных

    - Описание данных

    - Структуры и записи

    - Способы адресации

    - Переходы

    - Вызовы подпрограмм

    - Макросредства ассемблера

  • Глава 3. Команды и алгоритмы
  • - Организация приложений MS-DOS

    - Циклы и условные переходы

    - Обработка строк

    - Использование подпрограмм

    - Двоично-десятичные числа

    - Программирование аппаратных средств

  • Глава 4. Расширенные возможности современных микропроцессоров
  • - Архитектурные особенности

    - Дополнительные режимы адресации

    - Использование средств 32-разрядных процессоров в программировании

    - Основы защищенного режима

  • Приложение. Система команд процессоров Intel
  • - Система команд процессоров Intel

    - ААА ASCII-коррекция регистра АХ после сложения

    - AAD ASCII-коррекция регистра АХ перед делением

    - AAM ASCII-коррекция регистра АХ после умножения

    - AAS ASCII-коррекция регистра AL после вычитания

    - ADC Целочисленное сложение с переносом

    - ADD Целочисленное сложение

    - AND Логическое И

    - 386P+ ARPL Коррекция запрашиваемого уровня привилегий селектора

    - 386+ BOUND Проверка индекса массива на выход за границы массива

    - 386+ BSF Прямое сканирование битов

    - 386+ BSR Обратное сканирование битов

    - 486+ BSWAP Обмен байтов

    - 386+ ВТ Проверка бита

    - 386+ ВТС Проверка и инверсия бита

    - 386+ BTR Проверка и сброс бита

    - 386+ BTS Проверка и установка бита

    - CALL Вызов подпрограммы

    - CBW Преобразование байта в слово

    - 386+ CDQ Преобразование двойного слова в четверное

    - CLC Сброс флага переноса

    - CLD Сброс флага направления

    - CL1 Сброс флага прерываний

    - 386Р+ CLTS Сброс флага переключения задачи в управляющем регистре 0

    - CMC Инвертирование флага переноса

    - СМР Сравнение

    - CMPS Сравнение строк

    - 386+ CMPSD Сравнение строк по двойным словам

    - 486+ CMPXCHG Сравнение и обмен

    - Pentium+ CMPXCHG8B Сравнение и обмен 8 байтов

    - Pentium+ CPUID Идентификация процессора

    - CWD Преобразование слова в двойное слово

    - 386+ CWDE Преобразование слова в двойное слово с расширением

    - DAA Десятичная коррекция в регистре AL после сложения

    - DAS Десятичная коррекция в регистре AL после вычитания

    - DEC Декремент (уменьшение на 1)

    - DIV Деление целых чисел без знака

    - 386+ ENTER Создание стекового кадра для параметров процедуры

    - HLT Останов

    - IDIV Деление целых чисел со знаком

    - IMUL Умножение целых чисел со знаком

    - IN Ввод из порта

    - INC Инкремент (увеличение на 1)

    - INS Ввод строки из порта

    - INT Программное прерывание

    - INTO Прерывание по переполнению

    - IRET Возврат из прерывания

    - 386+ IRETD

    - Jcc Команды условных переходов

    - JMP Безусловный переход

    - LAHF Загрузка флагов в регистр АН

    - 386Р+ LAR Загрузка прав доступа

    - LDS Загрузка указателя с использованием регистра DS

    - LEA Загрузка исполнительного адреса

    - 386+ LEAVE Выход из процедуры высокого уровня

    - LES Загрузка указателя с использованием регистра ES

    - Загрузка указателя с использованием регистра FS

    - 386Р+ LGDT Загрузка регистра таблицы глобальных дескрипторов

    - 386Р+ LIDT Загрузка регистра таблицы дескрипторов прерываний

    - 386Р+ LLDT Загрузка регистра таблицы локальных дескрипторов

    - 386Р+ LMSW Загрузка слова состояния машины

    - LOCK Запирание шины

    - LODS Загрузка операнда из строки

    - 386+ LODSD Загрузка двойного слова из строки

    - LOOP Циклическое выполнение, пока содержимое СХ не равно нулю

    - LOOPE/LOOPZ Циклическое выполнение, пока равно/циклическое выполнение, пока нуль

    - LOOPNE/LOOPNZ Циклическое выполнение, пока не равно/циклическое выполнение, пока не нуль

    - 386Р+ LSL Загрузка границы сегмента

    - 386Р+ LTR Загрузка регистра задачи TR

    - MOV Пересылка данных

    - 386Р+ MOV Пересылка в\из специальных регистров

    - MOVS Пересылка данных из строки в строку

    - 386+ MOVSD Пересылка двойного слова из строки в строку

    - 386+ MOVSX Пересылка с расширением знака

    - 386+ MOVZX Пересылка с расширением нуля

    - MUL Умножение целых чисел без знака

    - NEG Изменение знака, дополнение до 2

    - NOP Холостая команда

    - NOT Инверсия, дополнение до 1, логическое отрицание

    - OR Логическое ВКЛЮЧАЮЩЕЕ ИЛИ

    - OUT Вывод в порт

    - OUTS Вывод строки в порт

    - POP Извлечение слова из стека

    - 386+ РОРА Восстановление из стека всех регистров

    - 386+ POPAD Восстановление из стека всех регистров в 32-разрядном режиме

    - POPF Восстановление из стека регистра флагов

    - 386+ POPFD Восстановление из стека расширенного регистра флагов

    - PUSH Занесение операнда в стек

    - 386+ PUSHA Сохранение в стеке всех регистров

    - 386+ PUSHAD Сохранение в стеке всех регистров в 32-разрядном режиме

    - 386+ PUSHFD Занесение в стек содержимого расширенного регистра флагов

    - RCL Циклический сдвиг влево через бит переноса

    - RCR Циклический сдвиг вправо через бит переноса

    - Pentium+P RDMSR Чтение особого регистра модели

    - REP Повторение

    - RET Возврат из процедуры

    - ROL Циклический сдвиг влево

    - ROR Циклический сдвиг вправо

    - SAHF Запись содержимого регистра АН в регистр флагов

    - SAL Арифметический сдвиг влево

    - SAR Арифметический сдвиг вправо

    - SBB Целочисленное вычитание с займом

    - SCAS Сканирование строки с целью сравненияя

    - 386+ SETcc Установка байта по условию

    - 386Р+ SGDT Сохранение в памяти содержимого регистра таблицы глобальных дескрипторов

    - SHL Логический сдвиг влево

    - 386+ SHLD Логический сдвиг влево с двойной точностью

    - SHR Логический сдвиг вправо

    - 386+ SHRD Логический сдвиг вправо с двойной точностью

    - 386P+ SIDT Сохранение в памяти содержимого регистра таблицы дескрипторов прерываний

    - 386Р+ SLDT Сохранение содержимого регистра таблицы локальных дескрипторов

    - 386Р+ SMSW Сохранение слова состояния машины

    - STC Установка флага переноса

    - STD Установка флага направления

    - STI Установка флага прерывания

    - STOS Запись в строку данных

    - 386+ STOSD Запись двойного слова в строку данных

    - 386P+ STR Сохранение содержимого регистра состояния задачи

    - SUB Вычитание целых чисел

    - TEST Логическое сравнение

    - 386Р+ VERR Проверка сегмента на чтение

    - 386Р+ VERW Проверка сегмента на запись

    - 486+ XADD Обмен и сложение

    - XCHG Обмен данными между операндами

    - XLAT Табличная трансляция

    - XOR Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ