Путь человека труден и опасен, но мы преодолеем всё и доберёмся до конечной точки нашего пути – Вершине знаний.

Дао Л. Программирование микропроцессора 8088


Дао Л. Программирование микропроцессора 8088Чтобы «общаться» с машиной, необходимо знать ее входной язык и иметь возможность прямого доступа к вычислительным ресурсам для обработки данных по формализованным алгоритмам. До недавного времени формализация алгоритмов и разработка соответствующих программ оставались прерогативой профессиональных программистов. Однако в связи с быстрым ростом числа ЭВМ и областей их проблемной ориентации остро встала проблема подготовки нужного числа программистов.Для программистов и специалистов, использующих вычислительную технику и желающих ознакомиться с программированием микро-ЭВМ. Персональные ЭВМ оказались первыми программно управляемыми вычислительными средствами, доступными широкому кругу пользователей. Это позволило последним приступить к активной формализации знаний с целью автоматизации рутинной части интеллектуальной деятельности. Появление персональных ЭВМ, положивших начало эре «компьютерной» грамотности, по значимости для развития человечества можно сравнить с изобретением книгопечатания. Книга американского автора является простым и доступным для широкого круга пользователей пособием по программированию на языке ассемблера микропроцессора 8038. В качеств примеров приводятся 20 программ, реализующих алгоритмы типовых задач сбора и обработки данных. Описывается архитектура микропроцессора с использованием 32-разрядных регистров, позволяющих создавать микро-ЭВМ больших вычислительных возможностей. Именно с учетом перечисленных факторов следует оценивать полезность предлагаемой книги. По существу она представляет собой введение в практику программирования персональных ЭВМ фирмы IBM, центральным процессором которых является микропроцессор 8088. Близким к нему по составу команд и организации программирования является отечественный микропроцессор К1810. Книга представляет несомненный интерес для специалистов, занимающихся разработкой проблемно-ориентированных программ обработки данных путем расширения версий используемых языков высокого уровня, а также использующих персональные ЭВМ для имитационного моделирования.

Содержание книги.

Предисловие к русскому изданию.
Предисловие.


Глава 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/JNG-переход, если меньше или равно/переход, если больше.
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. ЦИКЛИЧЕСКИЙ И ЛИНЕЙНЫЙ СДВИГ
Команды циклического сдвига.
Команды линейного сдвига.
Декодирование машинных команд.
Применение префикса переназначения сегмента.
°

Дао Л. Программирование микропроцессора 8088: Пер. с англ. — М.: Мир, 1988.— 357 с, ил.
ISBN 5-03-000232-4, ББК 32.973-01, УДК 681.3, djvu, Дао, Мир, 1988, программирование, AVR
__________________________





Все материалы взяты из открытых источников и представлены исключительно в ознакомительных целях. Все права на книги принадлежат их авторам и издательствам.



Вход в систему