Учебный курс. Часть 1. Необходимые инструменты
Автор: xrnd | Рубрика: Учебный курс | 30-01-2010 | Распечатать запись
Учиться программировать начнем с процессора Intel 8086. Будем писать программы под DOS 🙂 Программирование под Windows и Linux сложнее, а нам надо с чего-то начинать. Поэтому начнем с простого и понятного 16-битного процессора 8086.
Практическая ценность от программирования под DOS в наше время не очень большая, если вы, конечно, не собираетесь тесно работать с этой операционной системой. Но она позволит нам быстро освоить основы ассемблера, а потом мы уже перейдем к программированию под 32-битные системы.
Все программы учебного курса вы сможете запустить под Windows. Конечно, реально они будут работать в эмуляторе DOS, в режиме виртуального процессора 8086. Но для учебных целей это вполне подойдёт.
Для программирования на ассемблере нам прежде всего необходим компилятор. Наиболее известные компиляторы это TASM, MASM и FASM. В моем учебном курсе я буду использовать FASM. Это довольно новый, удобный, быстро развивающийся компилятор ассемблера, написанный на себе самом 🙂 Его преимущества — это поддержка сложных макросов и мультиплатформенность. Есть версии под DOS, Windows и Linux, что меня особенно радует )
С его помощью можно сгенерировать файл любого формата, не обязательно исполняемый файл, так что FASM — это превосходный инструмент для экспериментов и исследований.
Последнюю версию FASM’a можно скачать с официального сайта http://flatassembler.net.
На момент написания этой статьи последняя версия 1.68. Можно скачать с моего сайта (версия под Windows). Все программы учебного курса я буду компилить этой версией. Хотя наверно и другими получится ))) Для установки содержимое архива надо распаковать в какую-нибудь папку. Например, у меня это будет папка C:\FASM.
Для отладки написанных программ будем использовать старый добрый Turbo Debugger из пакета TASM. Скачать можно с моего сайта. Архив также надо распаковать в какую-нибудь папку. У меня это будет
C:\TD.
Также от вас потребуется голова, прямые руки и желание ковыряться в ассемблерных командах! 🙂 Любые вопросы по теме можно писать в комментариях к статьям. Я постараюсь на все ответить. Можете писать мне на почту xrndfasmworld.ru
Желаю удачи, в следующей статье начнем писать нашу первую программу.
30-07-2011 14:59
Привет.
Искал для девушки по фасму уроки, твое творение скорее всего подойдет. но только язык ассемблера не использует компилятор он использует транслятор и ассемблер
17-09-2011 16:29
Привет 🙂 Бедная девушка.
Насчет транслятора и ассеблера — наверно так правильнее, но это уже тонкости терминологии.
20-01-2013 12:43
xrnd: компилятор и интерпретатор это разновидность транслятора)) разница лишь в принципе использования программного кода — компилятор «переведенный» код вкладывает в файл на диске, а интерпретатор — в память! так сто сам подумай, что есть такое ассемблер =)
13-02-2012 17:42
Здравствуйте, у меня такой вопрос, асм-программисты считаются «чисто программерами», или какими-нибудь железняками?
03-05-2014 09:02
и программистами и жжелезячниками
11-04-2012 14:28
Если окончил институт, то железняками могут считаться. А если освоил эти уроки, то максимум в чем будешь разбираться, так это в архитектуре процессора.
03-05-2014 09:03
будешь считаться, но не офицально
13-06-2012 08:57
К более-менее популярным можно добавить NASM и GNU Assembler.
Транслятор — преобразует программу с одного языка на другой (ассмеблерный код в машшинный).
Компилятор — преобразует программу с какого-то языка программирования в машинный код.
Ассемблер — преобразует исходный код на языке ассемблера в машинный код.
Т.о., любой из терминов подходит в данном случаее, просто некоторые из терминов более общие, чем другие.
Асм-программисты — обычные программисты, но ближе к железу. Зачастую без знаний работы (даташит) конкретной «железяки» не обойтись.
12-02-2013 05:49
Компилятор это программа переводящая один язык программирования(исходный текст) в другой.Сам машинный код операционной системы не является конечной инстанцией генерации действий , а всего лишь микрокодом (тем же исходником,только для блока декодирования процессора),даже в RISC процессорах.
25-10-2013 00:25
Для обучения лучше всего использовать программу MARS
Там можно наблюдать за тем, как написана вами программа вычисляется в процесоре
13-07-2014 13:46
Что делать если Turbo Debugger не запускается ? (windows 8.1 x64)
Подойдет ли OllyDbg?
01-01-2018 15:36
Подойдёт,но,так же неплохим решением будет windows XP 32-bit,установленная на виртуальную машину и там Turbo Debugger должен работать.
02-01-2015 21:32
Как можно написать компилятор ассемблера на себе самом?? А что компилировало то что написали, если его еще не написали??
04-10-2015 16:27
Аналогично Turbo Debugger не запускается под win7 x64-просит win32.скачано с вашего сайта
21-01-2016 11:10
это комметарий запятая сайт хороший точка
09-02-2016 12:19
td не запускается в Win
09-02-2016 12:20
Win 10 имел ввиду
29-06-2016 10:03
А в качеству отладчика подойдет IDA?
21-01-2017 11:37
Так. Ладно. Как запустить эмулятор DOS в режиме виртуального процессора 8086?
24-05-2017 15:36
У меня вопрос! Я не могу запустить Turbo Debugger, ибо у меня 64-разрядная модель, а нужна 16-разрядная… Что мне делать?
13-10-2017 13:02
«Все программы учебного курса вы сможете запустить под Windows. Конечно, реально они будут работать в эмуляторе DOS, в режиме виртуального процессора 8086. Но для учебных целей это вполне подойдёт.»
Так я не понял: запускать надо под Виндой или как-то ещё? Нужно создать виртуальную машину с ДОС и под ней запускать? Или подразумевалось, что Вин ХР ещё поддерживает ДОС? Или что? Или как?
Вин 10
24-01-2018 18:23
я не шарю совсем, если я накосячу, у меня же не сгорит процессор?
09-02-2018 11:10
Спасибо за учебник! 🙂
28-07-2018 21:51
Пример, как использовать например в Visual Studio
int a = 10;
int b = 22;
_asm{
mov eax, a
add eax, b
mov a, eax
}
там же в дебагере можно посмотреть код в дизассемблере.
06-07-2019 04:09
Под WIN10 X64 — упорным тяжким трудом собрал вот такой вот рабочий комплект:
DOSBox0.74-win32-installer; — не помню где качал
fasmw17121; — качал здесь
FEditor-v2.0; — качал здесь;
td_dos; — открывает com программы — не помню где качал.
Чтоб люди не мучились — выложил свой сборник: https://drive.google.com/file/d/1o1EL7bkRyH7qVaJnsevEgWLA41K8lXZW/view?usp=sharing
Фал Debug.bat -запускает отладчик, в котором через меню открываете свою прогу;
Файл RunCom.bat — запускает вашу .com прогу, путь к которой указывается в файле Com.conf (последняя строка, остальные не трогать!). Папку As необходимо сохранить на диск C, дабы не поломать ссылки в батниках и конфигах.
30-08-2019 20:43
У меня проходит компиляция но программа не выполняется, пишет, что несовместимость с 64-разрядной системой. Что можно сделать?