- •Минобрнауки россии
- •Е.В. Грачева Системное программное обеспечение персональных эвм
- •1 Программирование в операционной среде
- •1.1 Программирование в среде однозадачной операционной системы
- •1.2 Программирование в среде ос Windows
- •1.2.1 Основные понятия
- •1.2.2 Программный интерфейс
- •1.2.2.1 Сообщения, очередь сообщений
- •1.2.2.2 Процедура окна
- •1.2.3 Использование динамических библиотек
- •1.2.3.1.Описание api-функции LoadLibrary
- •1.2.3.2 Описание функции GetProcAddress
- •1.2.3.3 Описание функции FreeLibrary
- •1.2.4 Описание некоторых api-функций
- •1.2.4.1.Функции для создания пользовательского интерфейса
- •1.2.4.1.1 Ввод данных с клавиатуры
- •1.2.4.1.2 Ввод данных с помощью "мыши"
- •1.2.4.1.3 Диалоговые окна
- •1.2.4.2 Функции для получения информации о системе
- •1.2.4.2.1 Информация об аппаратной конфигурации
- •1.2.4.2.3 Конфигурация ос
- •1.2.4.2.4 Системные параметры
- •1.2.4.2.5 Внешний вид системных элементов
- •1.2.4.3 Функции управления памятью
- •1.2.4.3.1 Основные функции управления памятью
- •1.2.4.4.Функции управления файлами
- •1.2.4.4 Функции управления некоторыми устройствами
- •Контрольные вопросы
- •35. Охарактеризовать функцию для определения конфигурации ос
- •36. Охарактеризовать функции об установке системных параметров.
- •2.Ассемблеры
- •2.1 Архитектура процессоров ia-32
- •2.1.1.Основная исполнительная среда микропроцессора с архитектурой ia32
- •2.1.2 Режимы работы и используемая модель памяти процессоров с архитектурой ia32
- •2.1.3 Архитектура ia-32 системного уровня
- •2.2.Программирование на языке ассемблера
- •2.2.1 Метки
- •2.2.2 Директивы
- •2.2.3 Формат команды
- •2.2.4 Система команд микропроцессоров с архитектурой ia32
- •2.2.4.1 Команды пересылки данных
- •Ins строка, dx
- •2.2.4.2 Арифметические операции
- •2.2.4.3 Операции сдвига
- •2.2.4.4 Битовые операции
- •2.2.4.5 Команды для организации циклов
- •1.3.1.1 Команды сравнения
- •2.2.4.6 Команды передачи управления
- •2.2.4.7 Системные команды
- •2.2.4.8 Команды математического сопроцессора
- •2.2.5 Технология программирования
- •2.3 Макроязыки
- •3.Трансляторы
- •3.1 Структура компиляторов и интерпретаторов, лексический, синтаксический и семантический анализаторы, генератор кода
- •3.1.1.Распределение памяти, виды переменных
- •3.1.2.Статическое и динамическое связывание
- •3.2 Загрузчики
- •3.2.1 Функции загрузчика
- •3.2.1 Настраивающий и динамический загрузчики
- •3.3 Подключение библиотек
- •4. Формальные языки и грамматики
- •4.1 Типы грамматик
- •4.1.1 Вывод цепочек
- •4.1.2 Конечный и магазинный автоматы, распознаватели и преобразователи, построение автомата по заданной грамматике
- •Приложения Приложение а
- •Оглавление
- •4. Формальные языки и грамматики
Контрольные вопросы
1. Дайте определение понятию «операционная среда».
2. Назначение программ форматов: COM и EXE.
3. Назвать основные функции прерывания INT 21h.
4. Назвать основные функции ввода/вывода данных.
3. Назвать основные функции однозадачной операционной системы
4. Назвать основные функции базовой системы ввода/вывод (BIOS).
5. Каким образом осуществляется прямая работа с видеопамятью?
6. Охарактеризовать основные элементы программы в среде Windows.
7.Что такое механизм сообщений ОС Windows?
8. Из каких разделов кода состоит классическая структура программы под Windows?
9. Назвать основные API-функции.
10. Что такое сообщения, очередь сообщений?
11. Что такое процедура обратного вызова?
12. Назначение системных сообщений.
13. Как используются значения идентификаторов сообщений?
14. Какова структура данных сообщения?
15. Что такое оконная процедура?
16. Какие параметры имеет оконная процедура?
17. Назвать входные параметры оконной процедуры.
18. Что представляют собой динамические библиотеки?
19. Какие типы функций можно определить в динамических библиотеках?
20. Что такое динамическое связывание?
21. Какие существует методы вызова функции из DLL?
22.Какие API-функции используются во время выполнения DLL?
23. Пояснить модель ввода данных с клавиатуры.
24. Что такое фокус ввода?
25. Какие существует типы сообщений с символами?
26. На какие группы делятся сообщения "мыши"?
27. Охарактеризовать оконные процедуры.
28.Что такое диалоговое окно?
29.Охарактеризовать типы диалоговых окон.
30. Какова структура шаблона диалогового окна?
31. Какой формат может использовать шаблон?
32. Охарактеризовать расширенный формат.
33. Охарактеризовать стандартный формат.
34. Охарактеризовать функцию позволяющую получить информацию о процессоре.
34. Охарактеризовать функцию для определения версии ОС.
35. Охарактеризовать функцию для определения конфигурации ос
36. Охарактеризовать функции об установке системных параметров.
37. Охарактеризовать основные функции управления памятью.
38. Охарактеризовать основные функции управления файлами.
39. Охарактеризовать основные функции для управления некоторыми устройствами.
40. Охарактеризовать основные функции для установки внешнего вида системных элементов.
2.Ассемблеры
Ассемблер – это программа, которая переводит текст программы, написанной на языке ассемблера в машинный код. Однако сначала в повседневной речи, а затем и в литературе слово «ассемблер» стало также и названием самого языка программирования.
Несмотря на многообразие и простоту разработки программного обеспечения с использованием языков программирования высокого уровня, язык ассемблера до сих пор используется. На ассемблере пишут:
все, что требует максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критические ко времени выполнения и объему участки программ;
все, что взаимодействует с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеоплатами;
все, что использует полностью возможности процессора: ядра многозадачных операционных систем, DPMI-серверы и вообще любые программы, переводящие процессор в защищенный режим;
все, что полностью использует возможности операционной системы: вирусы и антивирусы, защиты от несанкционированного доступа, программы, обходящие эти защиты, и программы, защищающиеся от этих программ
Понятно, что, когда говорят «программа на ассемблере», имеют в виду язык, а когда говорят «турбоассемблер версии 2.0», имеют в виду программу, переводящую исходный текст программы на ассемблере в машинный код. Вместе с ассемблером обязательно должна быть еще одна программа – компоновщик (linker), которая и создает исполнимые файлы из одного или нескольких объектных модулей, полученных после запуска ассемблера (таблица 24). Помимо этого для разных целей могут потребоваться дополнительные вспомогательные программы – компиляторы ресурсов, расширители DOS и тому подобное.
Таблица 24 – Ассемблеры и компоновщики
|
Microsoft |
Borland |
DOS, 16 бит |
masm или ml и link (16 бит) |
tasm и tlink |
DOS, 32 бита |
masm или ml и link (32 бита) |
tasm и tlink |
Windows EXE |
masm386 или ml и link (32 бита) |
tasm и tlink32 |
Windows DLL |
masm386 или ml и link (32 бита) |
tasm и tlink32 |
Перед тем, как приступить к изучению языка ассемблера, необходимо ознакомиться с архитектурой процессоров, на которых будет выполняться программный код.
