Справочник по языку Ассемблера IBM PC

           

Справочник по языку Ассемблера IBM PC

Об ассемблере
О книге
Урок 2. Архитектура персонального компьютера
Урок 4. Создание программы на ассемблере

Урок 5. Структура программы на ассемблере
Урок 13. Макросредства языка ассемблера
Урок 14. Модульное программирование
Урок 15. Прерывания
Урок 16. Защищенный режим работы микропроцессора
Урок 17. Обработка прерываний в защищенном режиме


Author
Микропроцессоров Intel
Порядок описания команд будет следующим:
Для описания команд приняты обозначения:

AAA
AAD
AAM
AAS
ADC
ADD
AND
BOUND

BSF
BSR
BSWAP
BT
BTC
BTR
BTS
CALL
CBW/CWDE
CLC

CLD
CLI
CMC
CMP
CMPS/CMPSB/CMPSW/CMPSD
CMPXCHG
CWD
CDQ
DAA

DAS
DEC
DIV
ENTER
HLT
IDIV
IMUL

IN
INC
INS/INSB/INSW/INSD
INT
INTO
IRET/IRETD
JCC JCXZ/JECXZ
JMP
LAHF

LDS/LES/LFS/LGS/LSS
LEA
LEAVE
LGDT
LIDT
LODS/LODSB/LODSW/LODSD
LOOP
LOOPE/LOOPZ LOOPNE/LOOPNZ
MOV

MOVS/MOVSB/MOVSW/MOVSD
MOVSX
MOVZX
MUL
NEG
NOP
NOT
OR
OUT
OUTS/OUTSB/OUTSW/OUTSD

POP
POPA
POPAD
POPF
POPFD
PUSH
PUSHA
PUSHAD
PUSHF
PUSHFD

RCL
RCR
REP/REPE/REPZ/REPNE/REPNZ
RET/RETF
ROL
ROR
SAHF
SAL
SAR

SBB
SCAS/SCASB/SCASW/SCASD
SETcc
SGDT
SIDT
SHL
SHLD
SHR
SHRD
STC

STD
STI
STOS/STOSB/STOSW/STOSD
SUB
TEST
XADD
XCHG
XLAT/XLATB
XOR
Программная модель микропроцессора

Пользовательские регистры
Регистры общего назначения
Сегментные регистры
Регистры состояния и управления
Системные регистры микропроцессора
Регистры управления
Регистры системных адресов
Регистры отладки
Типы данных

Массивы
Описание и инициализация массива в программе
Доступ к элементам массива

Двухмерные массивы
Типовые операции с массивами
Структуры
Описание шаблона структуры
Определение данных с типом структуры
Методы работы со структурой
Объединения
Записи

Описание записи
Определение экземпляра записи
Работа с записями
Записи: дополнительные возможности обработки

Справочник по языку Ассемблера IBM PC

Структура машинной команды
Способы задания операндов команды
Прямая адресация
Косвенная базовая (регистровая) адресация
Косвенная базовая (регистровая) адресация со смещением

Косвенная индексная адресация со смещением
Косвенная базовая индексная адресация
Косвенная базовая индексная адресация со смещением

Справочник по языку Ассемблера IBM PC

Обзор группы арифметических команд и данных
Целые двоичные числа
Десятичные числа

Арифметические операции над целыми двоичными числами
Сложение двоичных чисел без знака
Сложение двоичных чисел со знаком
Пример 1.
Пример 2.
Пример 3.
Пример 4.
Вычитание двоичных чисел без знака
Пример 5.

Пример 6.
Вычитание двоичных чисел со знаком
Пример 7.
Пример 8.
Вычитание и сложение операндов большой размерности
Умножение чисел без знака
Умножение чисел со знаком
Деление чисел без знака
Деление чисел со знаком

Вспомогательные команды для целочисленных операций
Команды преобразования типов
Другие полезные команды
Арифметические операции над двоично-десятичными числами
Пример 9.
Пример 10.
Пример 10. - 2
Вычитание неупакованных BCD-чисел
Пример 11.

Пример 12.
Умножение неупакованных BCD-чисел
Деление неупакованных BCD-чисел
Арифметические действия над упакованными BCD-числами
Сложение упакованных BCD-чисел
Пример 13.
Вычитание упакованных BCD-чисел
Пример 14.

Справочник по языку Ассемблера IBM PC

Логические команды
Логические данные

Логические команды
Команды сдвига
Команды линейного сдвига
Команды циклического сдвига
Дополнительные команды сдвига

Справочник по языку Ассемблера IBM PC

Команды передачи управления

Безусловные переходы
Команда безусловного перехода jmp
Процедуры
Условные переходы
Команда сравнения cmp
Команды условного перехода и флаги
Команды условного перехода и регистр ecx/cx
Организация циклов

Справочник по языку Ассемблера IBM PC

Цепочечные команды

Операция пересылки цепочек
Команда movs:
Операция сравнения цепочек
Команда cmps
Операция сканирования цепочек
Команда scas

Загрузка элемента цепочки в аккумулятор
Команда lods
Перенос элемента из аккумулятора в цепочку
Команда stos
Ввод элемента цепочки из порта ввода-вывода
Вывод элемента цепочки в порт ввода-вывода

Справочник по языку Ассемблера IBM PC

Директивы управления листингом
Общие директивы управления листингом
Директивы вывода текста включаемых файлов
Директивы вывода блоков условного ассемблирования
Директивы вывода макрорасширений
Директивы вывода листинга перекрестных ссылок
Директивы изменения формата листинга

Сообщения об ошибках
Сообщения о фатальных ошибках
Макросредства языка ассемблера

Псевдооператоры equ и =
Макрокоманды
Макродирективы

Директивы WHILE и REPT
Директива IRP
Директива IRPC
Директивы условной компиляции
Директивы компиляции по условию
Директивы IF и IFE
Директивы IFDEF и IFNDEF
Директивы IFB и IFNB
Директивы IFIDN, IFIDNI, IFDIF и IFDIFI

Вложенность директив условной трансляции
Директивы генерации ошибок
Безусловная генерация пользовательской ошибки
Условная генерация пользовательской ошибки
Директивы .ERRB (ERRIFB) и .ERRNB (ERRIFNB)
Директивы .ERRDEF (ERRIFDEF) и .ERRNDEF (ERRIFNDEF)
Директивы .ERRDIF (ERRIFDIF) и .ERRIDN (ERRIFIDN)
Директивы .ERRE (ERRIFE) и .ERRNZ (ERRIF)
Константные выражения в условных директивах
Дополнительное управление трансляцией

Опции транслятора TASM и редактора связей TLINK
Опции транслятора TASM
Опции компоновщика (редактора связей) TLINK
Структура программы на ассемблере
Синтаксис ассемблера

Директивы сегментации