- •Введение
 - •1. Архитектура процессора 8086
 - •1.1. Программно доступные регистры микропроцессора
 - •1.2. Сегментная организация памяти.
 - •1.3. Способы адресации.
 - •1.4. Организация стека.
 - •1.5. Организация прерываний.
 - •2. Загрузка и выполнение программ в DOS
 - •2.1. EXE- и COM-программы
 - •2.2. Выход из программы
 - •3. Ассемблер, макроассемблер, редактор связей
 - •4. Введение в язык Ассемблера
 - •4.1. Структура программы на языке ассемблера
 - •4.2. Операторы языка ассемблера
 - •4.3. Приоритеты операций
 - •4.4. Объявление и инициализация данных.
 - •4.4.3. Структуры
 - •4.4.4. Директива эквивалентности
 - •4.6. Стандартные директивы определения сегментов
 - •4.7. Директива INCLUDE
 - •4.8. Ссылки вперед
 - •5. Команды пересылки
 - •5.1. Команда MOV
 - •5.2. Команда обмена данных XCHG
 - •5.3. Команды загрузки полного указателя LDS и LES
 - •5.4. Команда перекодировки XLAT
 - •5.5. Команды работы со стеком
 - •5.6. Команды ввода-вывода
 - •6. Арифметические команды
 - •6.1. Команды арифметического сложения ADD и ADC
 - •6.2. Команды арифметического вычитания SUB и SBB
 - •6.3. Команда смены знака NEG
 - •6.4. Команды инкремента INC и декремента DEC
 - •6.5. Команды умножения MUL и IMUL
 - •6.6. Команды деления DIV и IDIV
 - •7. Команды побитовой обработки
 - •7.1. Команды, выполняющие логические операции
 - •7.2. Команды, выполняющие операции сдвигов
 - •8. Команды сравнения и передачи управления
 - •9. Подпрограммы и прерывания.
 - •10. Команды работы со строками
 - •11. Команды управления процессором
 - •12. Структуры данных
 - •12.1. Массивы
 - •12.2. Связанные списки
 - •13. Условное ассемблирование
 - •14. Макросредства
 - •14.1. Макродирективы
 - •15. Языки высокого уровня и Turbo Assembler
 - •15.1. Вызов подпрограмм и передача параметров в языке С++
 - •15.2. Вызов ассемблерных программ из программ на языке С++
 - •Литература
 
Рассмотрим пример.
#include <iostream.h> #pragma inline
void main(void)
{int a=10, b=20, c; cout<<”a=”<<a<<”b=”<<b<<’\n’;
asm mov ax,10 ; // в ax значение 10 asm mul a ; // умножение ax*a c=_AX;
cout<<”c=”<<c<<’\n’; asm {
mov ax, a mov bx, b xchg ax, bx mov a,ax mov b, bx
}
cout<< “ a= ”<< a <<”; b= ”<< b <<’\n’;
}
Литература
1.Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке Ассемблер. Пер. с англ. – M.: Радио и связь. 1989. – 336 с.
2.Фролов А.В., Фролов Г.В. Библиотека системного программиста. Тома 18,19. MS-DOS для программиста, М.: Диалог-МИФИ, 1995. – 507 с.
3.Пильщиков В.Н. Программирование на языке ассемблера IBM PC. –
М.: "Диалог-МИФИ", 2001. – 288 c.
4.Финогенов К.Г. Самоучитель по системным функциям MS-DOS. – Изд.2. – М.: Радио и связь, Энтроп, 1995. – 382 с.
5.Сван Т. Освоение Turbo Assembler. – Киев: Диалектика, 1996. – 544 с.
6.Юров В., Хорошенко С. Assembler: учебный курс. – СПБ: Питер Ком, 1999. – 672 с.
77
7.Зубков С.В. Assembler. Для DOS, Windows и Unix. – 2-е изд. – М.: ДМК, 2000. – 640 с.
8.Скляров В.А. Программирование на языке ассемблера. Учебное пособие, М. Высш.школа, 1999, 152 с.
9.Юров В. Assembler: Специальный справочник. СПб: Питер, 2000.
10.Пирогов В. Ю. Assembler. Учебный курс. – М.: "Нолидж", 2001. –
848с.
11.Юров В. Assembler: практикум. – СПб: Питер, 2001. – 400 с.
12.Рудаков П.И., Финогенов К.Г. Язык ассемблера: уроки программирования. – М.: ДИАЛОГ-МИФИ, 2001. – 640 с.
13.Голубь Н.Г. Искусство программирования на Ассемблере. Лекции и упражнения. – СПб.: ООО "ДиаСофтЮП", 2002. – 656 с.
14.Ирвин Кип. Язык ассемблера для процессоров Intel, 3-е изд.: Пер. с англ. – М.: Изд. Дом "Вильямс", 2002. – 616 с.
78
