Учебный курс. Часть 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://www.flatassembler.net/.
На момент написания этой статьи последняя версия 1.68. Можно скачать с моего сайта (версия под Windows). Все программы учебного курса я буду компилить этой версией. Хотя наверно и другими получится ))) Для установки содержимое архива надо распаковать в какую-нибудь папку. Например, у меня это будет папка C:\FASM.
Для отладки написанных программ будем использовать старый добрый Turbo Debugger из пакета TASM. Скачать можно с моего сайта. Архив также надо распаковать в какую-нибудь папку. У меня это будет
C:\TD.
Также от вас потребуется голова, прямые руки и желание ковыряться в ассемблерных командах! 🙂 Любые вопросы по теме можно писать в комментариях к статьям. Я постараюсь на все ответить. Можете писать мне на почту xrndasmworld.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
Спасибо за учебник! 🙂
[Ответить]