Книга американского автора является простым и доступным для широкого круга пользователей пособием по программированию на языке ассемблера микропроцессора 8088. Б качестве примеров приводятся 20 программ, реализующих алгоритмы типовых задач сбора и обработки данных. Описывается архитектура микропроцессора с использованием 32-разрядных регистров, позволяющих создавать микро-ЭВМ больших вычислительных возможностей.
Для программистов н специалистов, использующих вычислительную технику и желающих ознакомиться с программированием микро-ЭВМ.
Содержание:
Предисловие к русскому изданию
Предисловие
Глава I. ОБЩИЕ ПРИНЦИПЫ ПОСТРОЕНИЯ МИКРО-ЭВМ
Аппаратная часть
Программное обеспечение компьютера
Представление информации в микро-ЭВМ
Персональная микро-ЭВМ фирмы IBM
Глава II. МИКРОПРОЦЕССОР Intel 8088
Машинный язык
Архитектура процессора
Организация памяти и адресации
Режимы адресации
Работа со стековой памятью
Прерывания работы микропроцессора
Глава III. ЯЗЫК АССЕМБЛЕРА МИКРОПРОЦЕССОРА 8088
Почему необходим язык ассемблера?
Формат программы
Распространенные ошибки программирования на языке ассемблера
Макрокоманды
Глава IV. СИСТЕМА КОМАНД
AAA-коррекция кода ASCII при сложении
AAD-коррекция кода ASCII при делении
ААМ-коррекция кода ASCII при умножении
AAS-коррекция кода ASCII при вычитании
ADC-сложение с переносом
ADD-сложение
AND-логическое умножение
CALL-вызов процедуры
CBW-преобразование байта в слово
CLC-сброс флага переноса
CLD-сброс флага направления
CLI-сброс флага прерываний
CMC-инверсия флага переноса
СМР-сравнение операндов
CMPS-сравнение строк
CWD-преобразование слова в двойное слово
DAA-десятичная коррекция при сложении
DAS-десятичная коррекция при вычитании
DIV-деление
ESC-выдача
HLT-останов
IDIV-целочисленное деление
IMUL-целочисленное умножение
IN-ввод из порта
INC-инкремент
INT-программное прерывание
INTO-прерывание по переполнению
IRET-возврат из прерывания
JA/JNBE-переход, если больше/переход, если не меньше или равно
JAE/JNB/JNC-переход, если больше или равно/переход, если не меньше/переход, если нет переноса
JB/JNAE/JC-переход, если меньше/переход, если не больше или равно/переход, если есть перенос
JBE/JNA-переход, если меньше или равно/переход, если не больше
JCXZ-переход, если содержимое регистра СХ равно нулю
JE/JZ-переход, если равно/переход по нулю
JG/JNLE-переход, если больше чем/переход, если не меньше чем или равно
JGE/JNL-переход, если больше или равно/переход, если не меньше чем
JL/JNGE-переход, если меньше/переход, если не больше или равно
JLE/JNQ-переход, если меньше или равно/переход, если больше
JMP-безусловный переход
JHE/JNZ-переход по неравенству/переход, если не нуль
JNO-переход, если нет переполнения
JNP/JPO-переход при отсутствии четности
JNS-переход, если нет знака
JO-переход по переполнению
JP/JPE-переход по четности
JS-переход по знаку
LAHF-загрузка регистра АН из регистра флагов
LDS-загрузка указателя в регистр DS
LEA-загрузка исполнительного адреса
LES-загрузка указателя с использованием регистра ES
LOCK-захват шины
LODS-загрузка строки
LOOP-цикл
LOOPE/LOOPZ-цикл если равно/цикл если нуль
LOOPNE/LOOPNZ-цикл если не равно/цикл если не нуль
MOV-пересылка
MOVS-пересылка строки
MUL-умножение
NEG-отрицание
NOP-отсутствие операции
NOT-логическое отрицание
OR-логическое ИЛИ
OUT-вывод в порт
PUSHF-запись в стек содержимого регистра флагов POPF-чтение из стека содержимого регистра флагов
PUSH-запись в стек
POP-чтение из стека
RCL-циклический сдвиг влево через перенос
RCR-циклический сдвиг вправо через перенос
REP/REPE/REPZ-повторение/повторение если равно/повторение если нуль
RET-возврат из процедуры
ROL-циклический сдвиг влево
ROR-циклический сдвиг вправо
REPNE/REPNZ-повторение если равно/повторение если нуль SAHF-запись содержимого регистра АН в регистр флагов SAL/SHL-арифметический сдвиг влево/логический сдвиг влево
SAR-арифметический сдвиг вправо
SBB-вычитание с заемом
SCAS-сканирование строк
SHR-логический сдвиг вправо
STC-установить флаг переноса
STD-установить флаг направления
STI-установить флаг прерывания
STOS-запомнить строку
SUB-вычитание
TEST-тест
WAIT-ожидание
XCHG-замена
XLAT-передача из таблицы
XOR-исключающее ИЛИ
Глава V. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
Арифметические команды
Арифметические операции с 32-разрядными числами
Генерация псевдослучайных чисел
Перевод чисел из шестнадцатеричного представления в десятичное
Глава VI. ЛОГИЧЕСКИЕ ОПЕРАЦИИ
Стандартные операции
Логические команды
Преобразования разрядов операндов
Буквенные преобразования
Засекречивание и восстановление данных
Глава VII. ПЕРЕСЫЛКА ДАННЫХ
Команды пересылки данных
Перемещение данных в перекрывающихся последовательностях-строках
Взаимные преобразования кодов ASCII и EBCDIC
Пойск последовательности знаков Преобразования дважды связанных списков
Глава VIII. ПЕРЕДАЧА УПРАВЛЕНИЯ
Команды переходов
Цикл
Структура процедуры
«Пузырьковая» сортировка
Перевод алгебраического выражения в обратную польскую запись
Рекурсивное программирование
Глава IX. ЦИКЛИЧЕСКИЙ И ЛИНЕЙНЫЙ СДВИГ
Команды циклического сдвига
Команды линейного сдвига
Декодирование машинных команд
Применение префикса переназначения сегмента
Author(s): Дао Л.
Publisher: Мир
Year: 1988
Language: Russian
Commentary: 1146117972*Хор+OCR
Pages: 362