Операционная система MS-DOS — необходимый минимум.
Программирование на языке низкого уровня подразумевает знание операционной системы, для которой пишутся приложения. Операционная система MS-DOS — Microsoft Disk Operating System. Её основные назначение, как и всех операционных систем — обеспечить взаимодействие между софтом и железом, человеком и компьютером. Операционная система — это основная программа, которая как минимум должна быть запущена на машине. Ниже упрощённо описан необходимый минимум, который необходимо знать о системе, чтобы начать программировать.
Файлы, папки, диски.
Операционная система MS-DOS работает с файлами, папками (по сути — подвиды файлов), дисками.
Файлы делятся на виды:
1. Исполняемые файлы.
2. Файлы данных.
(Кстати, опять мы встречаемся с двумя понятиями: кодом и данными).
Файлы могут взаимодействовать друг с другом. Программа может состоять из одного исполняемого файла, а может включать в себя множество файлов.
Память.
Как код, так и данные в компьютере присутствуют в следующих видах памяти:
- Долговременной памяти — работает медленно, но имеет большой объём, сохраняет информацию после перезагрузки операционной системы (жёсткий диск компьютера).
- Кратковременной (оперативной) памяти — работает быстро, имеет небольшой объём, не сохраняет информацию после перезагрузки операционной системы (т.н. «оперативка»).
- Кэш процессора — память, являющаяся составной частью процессора, работает очень быстро, имеет небольшой объём, не сохраняет информацию после перезагрузки операционной системы (физически обычно встроен в процессор).
Процессор компьютера напрямую способен работать только с оперативной памятью. Операционная система делит оперативную память на различные участки по предназначению. В одни участки она записывает свои функции и данные, другие оставляет для пользовательских программ.
При запуске исполняемого файла операционная система, кроме всего прочего, «проецирует» файл, то есть переписывает его с жёсткого диска в оперативную память. Но переписывает не копируя, а делая записи в определённой последовательности, в определённые места и в определённом объёме.
Пока это всё, что нужно знать об оперативной памяти начинающему программисту. Такие часто используемые понятия для работы с памятью в операционной системе MS-DOS, как cm, xms, ems, umb нам, для создания ассемблерного кода, не понадобятся. Для написания 32 и 64 битных Windows приложений они тем более не нужны.
Файлы данных и исполняемые файлы.
Файлы данных в операционной системе MS-DOS могут иметь различные (практически любые) расширения (TXT, INI, MAC, ASM, CPP). С файлами данных работают исполняемые файлы.
Информация в исполняемых файлах разбивается на сегменты. Один сегмент в системе MS-DOS не может превышать 64 Кбайта. Связано это с особенностями работы железа.
Исполняемые файлы в системе MS-DOS бывают трёх видов, которые соответствуют расширениям:
- СОМ
- EXE
- BAT
Рассмотрим их поподробнее:
- Файлы с расширением .COM состоят из одного сегмента, в котором размещаются код, данные и стек. В результате получаем крохотную, «сжатую» программу, размер которой не может превышать 64 Кбайта. В формате COM для системы MS-DOS можно писать любые программы — хватило бы места для данных и кода. Отдельные программы (обработчики прерываний, резидентные программы) обычно пишутся в формате COM.
- Файлы с расширением EXE для кода, данных и стека имеют отдельные сегменты. Число сегментов данных и кода не ограничено, что даёт возможность создания исполняемых файлов большого размера, не ограничивая объёмы кода и данных.
- Файлы с расширением BAT — «батники». Они также выполняют определённые действия, однако не являются полноценными исполняемыми программами. В батнике можно записать алгоритм запуска определённых файлов типа СОМ или EXE в определённой последовательности и при определённых условиях. Это очень удобно и экономит уйму времени, исключая монотонные и многочисленные действия пользователя.
Ядро системы MS-DOS.
Операционная система MS-DOS в своём минимальном стандартном виде состоит из следующих файлов:
- IO.SYS
- MSDOS.SYS
- COMMAND.COM
- AUTOEXEC.BAT
- CONFIG.SYS
Причём файлы AUTOEXEC.BAT и CONFIG.SYS для запуска операционной системы не обязательны. Эти файлы являются предшественниками реестра Windows и содержат текстовые записи, позволяющие настроить загрузку системы при запуске (организовать меню загрузки, распределить память, запустить отдельные драйверы и программы).