Рубрики
Учебный курс

Учебный курс. Урок 1. Необходимые инструменты

Учиться программировать начнем с процессора Intel 8086. Будем писать программы под DOS 🙂 Программирование под Windows и Linux сложнее, а нам надо с чего-то начинать. Поэтому начнем с простого и понятного 16-битного процессора 8086.

Практическая ценность от программирования под DOS в наше время не очень большая, если вы, конечно, не собираетесь тесно работать с этой операционной системой. Но она позволит нам быстро освоить основы ассемблера, а потом мы уже перейдем к программированию под 32-битные системы.

Выбор компилятора

Для программирования на ассемблере нам прежде всего необходим компилятор. Наиболее известные компиляторы это TASM, MASM и FASM. В моем учебном курсе я буду использовать FASM. Это довольно новый, удобный, быстро развивающийся компилятор ассемблера, написанный на себе самом 🙂 Его преимущества — это  поддержка сложных макросов и мультиплатформенность. Есть версии под DOS, Windows и Linux.

С его помощью можно сгенерировать файл любого формата, не обязательно исполняемый файл, так что FASM — это превосходный инструмент для экспериментов и исследований.

Сложность в том, что сегодня большинство операционных систем даже на телефонах имеет 64-битную разрядность. В силу особенностей архитектуры просто так запустить 32-разрядную программу DOS на 64-битной системе не получится.

Эмуляция 32-битного DOS в 64-битной среде. DOSBox

Тем, кто работает в 32-битной системе Windows могут просто использовать fasm под Windows для написания и компиляции программ. В этом случае все программы учебного курса вы сможете запустить под Windows. Конечно, реально они будут работать в эмуляторе DOS, в режиме виртуального процессора 8086. Но для учебных целей это вполне подойдёт.

Ну а как же быть тем, кто идёт в ногу с цивилизацией и работает в 64-битной среде? Поскольку писать пограммы для 64 битного процессора нам еще рано, потребуется как-то эмулировать среду 32-битного DOS, к примеру, можно установить виртуальную машину, на неё поставить Windows XP 32-бит или последнюю версию MS-DOS, но предлогаю поступить проще и обойтись эмулятором DOSBox.

С оффициального сайта вы можете скачать DOSBox последней версии. Установите его, следуя инструкциям установщика и для удобства на тот же раздел диска, где находится fasm. Ярлык запуска эмулятора DOSBox появился на рабочем столе. Готово!

Ну или почти, поскольку попытка скомпилировать программу внутри fasm запущенном на DOSBox из коробки обернется неудачей. Причина в том, что DOSBox ориентирован в первую очередь на любителей ретроигр.

Редактирование dosbox.conf

Не будем огорчатся, что разработчики эмулятора обошли поддержку 32-битного реального режима (FRM mode). Мы можем получить нужный результат, перед вызовом fasm загрузив DPMI сервер. Скачайте cwsdpmi по ссылке с моего сайта. Распакуйте архив туда, куда вы ранее установили fasm. В итоге путь к CWSDPMI будет иметь вид C:\fasm\CWSDPMI.

Осталось отредактировать файл Dosbox.conf, чтобы нам не приходилось каждый раз, когда мы собираемся компилировать программу, вручную вызывать DPMI хост. В Windows 7 этот файл распологается тут: {Системный раздел}:\Users\{имя пользователя}\AppData\Local\DOSBox\dosbox-{версия}.conf.

Узнать расположение этого конфигурационного файла в своей системе вы можете по ссылке Dosbox.conf.

И так, файл Dosbox.conf открыт для редактрования, перемещаемся в самый его конец, чтобы добавить следующие строки:

Сохраните конфигурационный файл. Всё готово, чтобы запустить fasm и скомпилировать нашу первую 32 битную программу. Всему своё время!

Последнюю версию FASM’a можно скачать с официального сайта https://www.flatassembler.net/.

На момент публикации этой статьи последняя версия 1.73.25. Можно скачать с моего сайта (версия под DOS, также под Linux и Windows). Все программы учебного курса будем компилировать этой версией. Хотя наверно и другими получится ))) Для установки содержимое архива надо распаковать в какую-нибудь папку. Например, папка C:\FASM.

Отладчик Tourbo Debugger

Для отладки написанных программ будем использовать старый добрый Turbo Debugger из пакета TASM. Скачать можно с моего сайта. Туда вложен файл DPMI16BI.OVL для поддержки DPMI режима. Архив также распакуйте в какую-нибудь папку. Для примера в папку
C:\TD.

Также от вас потребуется голова, прямые руки и желание ковыряться в ассемблерных командах! 🙂 Любые вопросы по теме можно писать в комментариях к статьям.

Желаю удачи, в следующей статье начнем писать нашу первую программу.

4 ответа к “Учебный курс. Урок 1. Необходимые инструменты”

Здарова, автор!
Для подруги шарился в сети в поисках доступной методички по асму, наверное твои труды сгодятся. Только резанула глаз, что ты называешь компилятором. В ассемблере есть только транслятор и ассемблер!

Здарова коль не шутишь.
Про определение транслятора и ассемблера, быть может, так и точнее. Но «компилятор» — имя нарицательное, так что для начинающих эти тонкости словоблудия не так важны, как важна суть процессов, за ними стоящих :)

Добавить комментарий