
- •Аппаратно-ориентированное программирование
- •Ббк 32.973.73
- •Удк 681.3 ббк 32.973.73ф 73
- •1. Основы программирования на ассемблере
- •1.1. Принципы построения ассемблерных программ
- •1.2. Понятие архитектуры компьютера
- •1.3. Регистры программиста в ia32
- •1.4. Описание сегментной структуры программы
- •2. Простейшие средства ассемблера
- •2.1. Средства описания данных
- •2.2. Обращения к функциям ос посредством прерываний
- •2.3. Средства преобразования в исполняемый файл
- •2.4. Управление строками при выводе и ввод данных
- •2.5. Простейшие способы адресации
- •3. Архитектурные элементы для построения программ
- •3.1. Организация условных переходов
- •3.2. Средства организации циклов
- •3.3. Особенности команд умножения и деления
- •3.4. Организация процедур
- •3.5. Неарифметические операции над кодами
- •4. Использование неэлементарных способов адресации
- •4.1. Косвенно-регистровая адресация
- •4.2. Использование индексной адресации данных
- •4.3. Базовая и индексно базовая адресации
- •4.4. Адресация с масштабированием
- •5. Взаимосвязи программных единиц
- •5.1. Многомодульная разработка программ
- •5.2. Использование библиотек объектных модулей
- •5.3. Организация стекового кадра подпрограммы
- •5.4. Программный доступ к системным функциям Win32
- •5.5. Особенности использования объектных файлов формата coff
- •5.6. Стандартный доступ к системным функциям Unix
- •6. Вспомогательные средства базовой архитектуры
- •6.1. Использование строковых команд пересылки
- •6.2. Применение строковых команд сравнения
- •7. Использование ассемблерных отладчиков
- •7.1. Особенности отладчика gdb для программ в Linux
- •7.2. Отладчики текстового режима для Windows
- •Библиографический список
- •Оглавление
Библиографический список
1. Абель П. Язык Ассемблера для IBM PC и программирования. -М.: Высш. школа. 1992. ‑447с.
2. Брэдли Д. Программирование на языке ассемблера для персональной ЭВМ фирмы IBM. ‑М.: Радио и связь, 1988. -448с.
3. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. - СПб.: Питер, 2001. ‑736 с.
4. Данкан Р. Профессиональная работа в MS-DOS. - М.: Мир, 1993. -509 с.
5. Зубков С.В. Ассемблер для DOS, Windows и UNIX. - М.: ДМК Пресс, 2000.
6. Использование Turbo Assembler при разработке программ. - Киев: Диалектика, 1994. -288 с.
7. Нортон П., Соухэ Д. Язык ассемблера для IBM PC. -М.: Компьютер, 1993. -352с.
8. Рудаков П.И., Финогенов К.Г. Программируем на языке ассемблера IBM PC. -Обнинск: Изд-во "Принтер", 1997. -584 с.
9. Рудаков П.И., Финогенов К.Г. Язык ассемблера: уроки программирования. - М.: ДИАЛОГ-МИФИ, 2001. -640 с.
10. Сван Т. Освоение Turbo Assembler. - Киев: Диалектика, 1996. -544 с.
11. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. ‑М.: Радио и связь, 1989. -336с.
12. Финогенов К.Г. Справочник по системным функциям MS-DOS. М.: Радио и связь. Энтроп. 1995. -382с.
13. Финогенов К.Г. Основы языка ассемблера. - М.: Радио и связь, 1999. -288 с.
14. Флоренсов А.Н. Введение в системное программирование на основе 16-битных компьютеров типа IBM PC: Учеб. пос. -Омск, Изд-во ОмГТУ, 1996. -108с.
15. Флоренсов А.Н. Введение в системное программирование для 32-разрядных компьютеров: Учеб. пос. - Омск, Изд-во ОмГТУ, 1998. -144 с.
16. Флоренсов А.Н. Системное программирование в многозадачных ОС. Семантический подход: Учеб. пос. - Омск, Изд-во ОмГТУ, 2000. -96 с.
17. Юров В. Assembler. - СПб.: Питер, 2000. - 288 с.
18. Юров В. Ассемблер: практикум. - СПб.: Питер, 2001. -400 с.
19. Юров В. Assembler: Специальный справочник. - СПб.: Питер, 2000. -388 с.
20. Юров В., Хорошенко С. Ассемблер: учебный курс. -СПб: Изд-во Питер, 1999. -672 с.
21. Кулаков В. Программирование на аппаратном уровне. Специальный справочник. -СПб.: Питер, 2001. -496 с.
22. http://www.phoenix.gb.net
23. http://alink.sourceforge.net/files
Оглавление
ВВЕДЕНИЕ ..........................................................................................….............. 3
1.ОСНОВЫ ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРе................…............ 6
1.1. Принципы построения ассемблерных программ ................….................... 6
1.2. Понятие архитектуры компьютера...............................…............................. 8
1.3. Регистры программиста в IA32 ..................................…………….............. 9
1.4. Описание сегментной структуры программы ....................…………........ 11
2. ПРОСТЕЙШИЕ СРЕДСТВА АССЕМБЛЕРа........................................…...... 14
2.1. Простейшие средства описания данных в ассемблерных программах ... 14
2.2. Обращения к функциям ОС посредством программных прерываний ..... 17
2.3. Средства исходного текста в исполняемый файл....................................... 22
2.4. Управление строками при выводе и ввод данных .................................... 27
2.5. Простейшие способы адресации ..............………………………….…….. 29
3. АРХИТЕКТУРНЫЕ ЭЛЕМЕНТЫ ДЛЯ ПОСТРОЕНИЯ ПРОГРАММ …...... 34
3.1. Организация условных переходов ...............................…..............………. 34
3.2. Средства организации циклов .....................………………………………. 41
3.3. Особенности команд умножения и деления............………....................… 45
3.4. Организация процедур .........................................…………………............ 50
3.5. Неарифметические операции над кодами.............................…………...... 54
4. ИСПОЛЬЗОВАНИЕ НЕЭЛЕМЕНТАРНЫХ СПОСОБОВ АДРЕСАЦИИ .... 59
4.1. Косвенно-регистровая адресация ……………………............................... 59
4.2. Использование индексной адресации данных ........…………….……….. 62
4.3. Базовая и индексно базовая адресация ....................……………………… 65
4.4. Адресация с масштабированием ..............................………………..……. 69
5. ВЗАИМОСВЯЗИ ПРОГРАММНЫХ ЕДИНИЦ …..….................................... 71
5.1. Многомодульная разработка программ ...........................…………..……. 71
5.2. Использование библиотек объектных модулей .............…………………. 77
5.3. Организация стекового кадра подпрограммы .............…………….…….. 81
5.4. Программный доступ к системным функциям Win 32.................….......... 87
5.5. Особенности использования объектных файлов формата COFF …........ 93
5.6. Стандартный доступ к системным функциям Unix ..................…............ 98
6. ВСПОМОГАТЕЛЬНЫЕ СРЕДСТВА БАЗОВОЙ АРХИТЕКТУРЫ ............. 102
6.1. Использование строковых команд пересылки ......................................... 102
6.2. Применение строковых команд сравнения .............................................. 107
7. ИСПОЛЬЗОВАНИЕ АССЕМБЛЕРНЫХ ОТЛАДЧИКОВ ………….……. 114
7.1. Особенности отладчика gdb для программ в Linux ................................. 114
7.2. Отладчики текстового режима для Windows ...................….................... 121
Библиографический список ................................................................................ 127