Cамоучитель по Assembler



Cамоучитель по Assembler

         

Cамоучитель по Assembler

Index0
Память и процессор
Байт, слово и двойное слово.
Нумерация байтов в многобайтовых данных.
Образование физического адреса из сегментного адреса и смещения.
Распределение адресного пространства
Регистры процессора
Сегментная структура программ
Образ программы в памяти.

Стек
Система прерываний
Аппаратная организация прерываний.
Процедура обслуживания прерывания.
Система ввода-вывода
Подключение устройств компьютера

Листинг трансляции программы

Index0
Листинг трансляции программы 1-1.
Расположение сегментов программы в памяти при выравнивании по умолчанию (а) и на байт (б).

З. Начальный кадр отладчика с текстом отлаживаемой программы.
Окно процессора с внутренними окнами.
Состояние программы после выполнения двух первых команд.
Дополнительное меню окна дампа памяти.
Представление данных
Образование отрицательных чисел различного размера.
Представление 16-битовых чисел без знака и со знаком.
Представление 8-битовых чисел без знака и со знаком.
Упакованный двоично-десятичный формат.
Запись десятичного числа 9604 в слове.

Запись десятичного числа 98 в распакованном виде.
Описание данных
Структуры и записи
Способы адресации
Состояние стека после загрузки в него трех параметров и перехода на подпрограмму
Переходы
Вызовы подпрограмм
Участие стека в механизме вызова ближней подпрограммы.
Участие стека в механизме вызова дальней подпрограммы.
Макросредства ассемблера

Вывод программы 2.1.

Организация приложений MS-DOS

Организация приложений MS-DOS
Циклы и условные переходы
Обработка строк
Таблица 3.1.
Использование подпрограмм
Состояние стека в подпрограмме после сохранения регистров.
Двоично-десятичные числа
Алгоритм работы подпрограммы conv.
Программирование аппаратных средств
Регистр маски ведущего контроллера прерываний.

Порты интерфейса Centronics
Протокол передачи данных для интерфейса Centronics.

Архитектурные особенности

Архитектурные особенности
Основные регистры 32-разрядных процессоров.
Дополнительные режимы адресации
Режимы косвенной адресации с использованием 32-разрядных регистров.
Режимы косвенной адресации с использованием 16-разрядных регистров.

Использование средств 32-разрядных процессоров в программировании
Основы защищенного режима
Дескрипторы сегментов и их селекторы.
Цепочка преобразований виртуального адреса в физический.
Страничная трансляция адресов.
Пример линейного адреса.
Формат дескриптора памяти.
Формат псевдодескриптора.
Сегментные регистры и теневые регистры дескрипторов.

Система команд процессоров Intel

Система команд процессоров Intel
HLT Останов
IDIV Деление целых чисел со знаком
П3. Состояние стека после

INS Ввод строки из порта
INT Программное прерывание
INTO Прерывание по переполнению
MP Безусловный переход
LAHF Загрузка флагов в регистр АН
LEAVE Выход из процедуры высокого уровня
LES Загрузка указателя с использованием регистра ES
Р+ LGDT Загрузка регистра таблицы глобальных дескрипторов
Р+ LIDT Загрузка регистра таблицы дескрипторов прерываний
LOCK Запирание шины

LODS Загрузка операнда из строки
LODSD Загрузка двойного слова из строки
LOOP Циклическое выполнение, пока содержимое СХ не равно нулю
Р+ LTR Загрузка регистра задачи TR
MOV Пересылка данных
MOVSB Пересылка байта данных из строки в строку
ААА ASCII-коррекция регистра АХ после сложения
AAD ASCII-коррекция регистра АХ перед делением
MUL Умножение целых чисел без знака
NEG Изменение знака, дополнение до 2

OUTSB Вывод байта в порт
POP Извлечение слова из стека
+ РОРА Восстановление из стека всех регистров
PUSH Занесение операнда в стек
+ PUSHA Сохранение в стеке всех регистров
П4. Действие команды rcl.
RCR Циклический сдвиг вправо через бит переноса
П.5. Действие команды rcl.
Pentium+P RDMSR Чтение особого регистра модели
RETN Возврат из ближней процедуры

ROL Циклический сдвиг влево
П6. Действие команды rol.
>ROR Циклический сдвиг вправо
П7. Действие команды ror.
П8. Действие команды sal.
П.9. Действие команды sar.
SBB Целочисленное вычитание с займом
SCAS Сканирование строки с целью сравнения
SETcc Установка байта по условию
SHL Логический сдвиг влево

П10. Действие команды shld.
П11. Действие команды shr.
П12. Действие команды shrd.
P+ SIDT Сохранение в памяти содержимого регистра таблицы дескрипторов прерываний
Р+ SLDT Сохранение содержимого регистра таблицы локальных дескрипторов
ADC Целочисленное сложение с переносом
ADD Целочисленное сложение
STI Установка флага прерывания
STOS Запись в строку данных
P+ STR Сохранение содержимого регистра состояния задачи

SUB Вычитание целых чисел
XADD Обмен и сложение
П13. Действие команды xadd.
XCHG Обмен данными между операндами
BSF Прямое сканирование битов
+ BSR Обратное сканирование битов
BTR Проверка и сброс бита
+ BTS Проверка и установка бита
CLC Сброс флага переноса
CLD Сброс флага направления

СМР Сравнение
CMPS Сравнение строк
CMPXCHG Сравнение и обмен
П1. Действие команды cmpxchg
Pentium+ CMPXCHG8B Сравнение и обмен 8 байтов
П2. Действие команды cmpxchg8b
DAA Десятичная коррекция в регистре AL после сложения
DAS Десятичная коррекция в регистре AL после вычитания

перейти
перейти
Содержание раздела