<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80</id>
	<title>Ассемблер - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80&amp;action=history"/>
	<updated>2026-07-17T06:21:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80&amp;diff=5710&amp;oldid=prev</id>
		<title>imported&gt;LALKOVED: Добавил ссылку.</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80&amp;diff=5710&amp;oldid=prev"/>
		<updated>2025-12-12T18:13:38Z</updated>

		<summary type="html">&lt;p&gt;Добавил ссылку.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{о|компьютерных программах|языке программирования|Язык ассемблера}}&lt;br /&gt;
{{нет ссылок в разделе|дата=2020-10-03}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ассе́мблер&amp;#039;&amp;#039;&amp;#039; (от {{lang-en|assembler}} — сборщик) — [[транслятор]] [[Компьютерная программа|программы]] из текста на [[язык ассемблера|языке ассемблера]] в программу [[Машинный код|на машинном языке]].&lt;br /&gt;
&lt;br /&gt;
Как и сам язык, ассемблеры, как правило, специфичны для конкретной [[Архитектура компьютера|архитектуры]], [[Операционная система|операционной системы]] и варианта [[Синтаксис (программирование)|синтаксиса]] языка, поскольку работают с [[мнемоника]]ми машинных инструкций определённого [[процессор]]а. Вместе с тем, ассемблеры могут быть мультиплатформенными или вовсе универсальными, то есть работать на разных платформах и операционных системах. Среди ассемблеров можно также выделить группу &amp;#039;&amp;#039;&amp;#039;кросс-ассемблеров&amp;#039;&amp;#039;&amp;#039;, имеющих возможность собирать машинный код и исполняемые модули (файлы) для архитектур, отличных от архитектуры и/или операционной системы, в которых работает сам ассемблер (например, трансляция программы для [[микроконтроллер]]а ассемблером, работающим на [[Персональный компьютер|компьютере]]).&lt;br /&gt;
&lt;br /&gt;
{{Викисловарь|макроассемблер}}&lt;br /&gt;
Многие современные ассемблеры являются &amp;#039;&amp;#039;&amp;#039;макроассемблерами&amp;#039;&amp;#039;&amp;#039; (от {{lang-el|μάκρος}} — большой, обширный), то есть [[макропроцессор]]ами на базе [[язык ассемблера|языка ассемблера]]&amp;lt;ref&amp;gt;{{книга|заглавие = Словарь по кибернетике|ответственный = Под ред. академика [[Михалевич, Владимир Сергеевич|В. С. Михалевича]]|издание = 2-е изд|место = К.|издательство = Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана|год = 1989|страниц = 751|серия = С48|isbn = 5-88500-008-5|тираж = 50000}}&amp;lt;/ref&amp;gt;. Кроме [[макрос]]ов, ассемблеры при трансляции выполняют другие [[Язык ассемблера#Директивы|директивы]], набор которых зависит не от аппаратной платформы, для которой транслируется программа, а от самого используемого транслятора.&lt;br /&gt;
&lt;br /&gt;
Ассемблирование может быть не первым и не последним этапом на пути получения исполнимого модуля программы. Так, многие [[компилятор]]ы с [[Высокоуровневый язык программирования|языков программирования высокого уровня]] выдают результат в виде программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. В свою очередь, результатом ассемблирования может быть не исполняемый, а [[объектный модуль]], содержащий разрозненные блоки машинного кода и данных программы, из которого (или из нескольких объектных модулей) в дальнейшем с помощью [[Редактор связей|редактора связей]] (линкера) может быть получен [[исполняемый файл]].&lt;br /&gt;
&lt;br /&gt;
В отличие от компиляции программ на языках высокого уровня, ассемблирование является более или менее однозначным и обратимым процессом, поскольку в языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в высокоуровневых языках каждое выражение может преобразовываться в большое число различных инструкций. Операция, обратная ассемблированию, называется [[Дизассемблер|дизассемблированием]]. Трансляцию ассемблерных программ иногда также называют компиляцией.&lt;br /&gt;
&lt;br /&gt;
== Архитектура x86 ==&lt;br /&gt;
&lt;br /&gt;
=== Ассемблеры для DOS ===&lt;br /&gt;
Наиболее известными ассемблерами для операционной системы [[DOS]] являлись Borland Turbo Assembler ([[TASM]]), Microsoft Macro Assembler ([[MASM]]) и Watcom Assembler (WASM). Также в своё время был популярен простой ассемблер A86.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
При появлении операционной системы [[Windows]] появилось расширение TASM, именуемое TASM 5+ (неофициальный пакет, созданный человеком с ником neonovd’), позволившее создавать программы для выполнения в среде Windows. Последняя известная версия TASM — 5.3, поддерживающая инструкции MMX, на данный момент включена в [[Turbo C++ Explorer]]. Но официально развитие программы полностью остановлено. Последнее развитие компилятор получил благодаря современной среде разработки TASM Visual. Среда неофициальная, но с её помощью работа с компилятором многократно упрощается.&lt;br /&gt;
&lt;br /&gt;
Microsoft поддерживает свой продукт под названием [[Microsoft Macro Assembler]]. Она продолжает развиваться и по сей день, последние версии включены в наборы [[DDK]]. Но версия программы, направленная на создание программ для DOS, не развивается. Кроме того, Стивен Хатчессон создал пакет для программирования на MASM под названием «MASM32».&lt;br /&gt;
&lt;br /&gt;
=== GNU и Linux ===&lt;br /&gt;
В состав операционной системы [[GNU]] входит пакет [[binutils]], включающий в себя ассемблер [[GNU Assembler|GAS]] (GNU Assembler), использующий [[AT&amp;amp;T-синтаксис]], в отличие от большинства других популярных ассемблеров, которые используют [[Intel-синтаксис]] (поддерживается с версии 2.10).&lt;br /&gt;
&lt;br /&gt;
=== Переносимые ассемблеры ===&lt;br /&gt;
Также существует открытый проект ассемблера, версии которого доступны под различные операционные системы и который позволяет получать [[Объектный модуль|объектные файлы]] для этих систем. Называется этот ассемблер [[NASM]] (Netwide Assembler).&lt;br /&gt;
&lt;br /&gt;
[[Yasm]] — это переписанная с нуля версия NASM под [[лицензия BSD|лицензией BSD]] (с некоторыми исключениями).&lt;br /&gt;
&lt;br /&gt;
[[flat assembler]] (fasm) — молодой ассемблер под модифицированной для запрета перелицензирования (в том числе под [[GNU GPL]]) BSD-лицензией. Есть версии для [[KolibriOS]], [[Linux]], [[DOS]] и [[Windows]]; использует [[Intel-синтаксис]] и поддерживает инструкции [[x86-64]].&lt;br /&gt;
&lt;br /&gt;
== Архитектуры RISC ==&lt;br /&gt;
&lt;br /&gt;
=== MCS-51 ===&lt;br /&gt;
MCS-51 ([[Intel 8051]]) — классическая архитектура микроконтроллера. Для неё существует кросс-ассемблер ASM51, выпущенный корпорацией [[MetaLink]].&lt;br /&gt;
&lt;br /&gt;
Кроме того, многие фирмы-разработчики программного обеспечения, такие как IAR или Keil, представили свои варианты ассемблеров. В ряде случаев применение этих ассемблеров оказывается более эффективным благодаря удобному набору директив и наличию среды программирования, объединяющей в себе профессиональный ассемблер и язык программирования Си, отладчик и менеджер программных проектов.&lt;br /&gt;
&lt;br /&gt;
=== AVR ===&lt;br /&gt;
На данный момент для [[AVR]] существует четыре компилятора производства [[Atmel]] (AVRStudio 3, AVRStudio 4, AVRStudio 5 и AVRStudio 6, AVRStudio 7).&lt;br /&gt;
&lt;br /&gt;
В рамках проекта AVR-GCC (он же [[WinAVR]]) существует компилятор &amp;#039;&amp;#039;avr-as&amp;#039;&amp;#039; (это портированный под AVR ассемблер GNU &amp;#039;&amp;#039;as&amp;#039;&amp;#039; из [[GCC]]).&lt;br /&gt;
&lt;br /&gt;
Также существует свободный минималистический компилятор &amp;#039;&amp;#039;avra&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{sourceforge|avra}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Платные компиляторы: IAR (EWAVR), CodeVisionAVR, Imagecraft. Данные компиляторы поддерживают языки Assembler и C, а IAR ещё и C++.&lt;br /&gt;
&lt;br /&gt;
Существует компилятор с языка BASIC — BASCOM, также платный.&lt;br /&gt;
&lt;br /&gt;
=== ARM ===&lt;br /&gt;
Для процессоров ARM существует достаточно широкий выбор компиляторов, внутренняя реализация которых зависит от непосредственно производителя данного ARM-процессора либо разработчика IDE для работы с ARM-процессорами. Официальным компилятором ARM, непосредственно от [[ARM architecture|компании ARM]], является [https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads  ARM Compiler 6], который входит в IDE [https://developer.arm.com/products/software-development-tools/ds-5-development-studio DS-5 Development Studio] и поддерживает компиляцию программ на языках [[Си (язык программирования)|Си]] и [[C++]].&amp;lt;br&amp;gt;&lt;br /&gt;
Компиляторы от поставщиков ARM процессоров и разработчиков ARM toolchain:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Поставщик IDE !! Компилятор !! Поддерживаемые языки !! Условия использования&lt;br /&gt;
|-&lt;br /&gt;
| [http://www2.keil.com/mdk5/ Keil mVision] || [http://www2.keil.com/armtools MDK-ARM] || [[Си (язык программирования)|Си]]/[[C++]]/Assembler || Shareware (не более 32kb)&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.iar.com/iar-embedded-workbench/partners/stmicroelectronics/ IAR Embedded Workbench]|| [http://netstorage.iar.com/SuppDB/Public/UPDINFO/006738/arm/doc/EWARM_DevelopmentGuide.ENU.pdf IAR Compiller] || [[Си (язык программирования)|Си]]/[[C++]]/Assembler || Commercial&lt;br /&gt;
|-&lt;br /&gt;
| [https://web.archive.org/web/20170704123613/http://www.coocox.org/software.html CoIDE] || [https://launchpad.net/gcc-arm-embedded GCC compiler] || [[Си (язык программирования)|Си]]/[[C++]]/Assembler || [https://web.archive.org/web/20170709234728/http://coocox.org/wiki/coocox/Misc/Business-Model Free/Commercial]&lt;br /&gt;
|-&lt;br /&gt;
| [https://atollic.com/truestudio/ True Studio] || [https://launchpad.net/gcc-arm-embedded Precompiled GCC compiler] || [[Си (язык программирования)|Си]]/[[C++]]/Assembler || [https://atollic.com/truestudio/ Free/Commercial]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PIC ===&lt;br /&gt;
Средой разработки, выпускаемой компанией [[Microchip Technology]] для создания, редактирования и отладки программ для микроконтроллеров семейства [[PIC]], является [[MPLAB]]. Среда включает в себя трансляторы с языка ассемблер MPASM и ASM30 для различных семейств микроконтроллеров PIC. Современные версии среды «MPLAB X IDE» являются мультиплатформенными и работают под различными операционными системами для ЭВМ. Среда распространяется бесплатно.&lt;br /&gt;
&lt;br /&gt;
=== [[MSP430]] ===&lt;br /&gt;
{{Раздел не написан|дата=2020-10-03}}&lt;br /&gt;
&lt;br /&gt;
=== [[PowerPC]] ===&lt;br /&gt;
{{Дополнить раздел|дата=2010-01-11}}&lt;br /&gt;
Программный пакет &amp;#039;&amp;#039;The PowerPC Software Development Toolset&amp;#039;&amp;#039; от [[IBM]] включает в себя ассемблер для [[PowerPC]].&lt;br /&gt;
&lt;br /&gt;
=== MIPS ===&lt;br /&gt;
{{Раздел не написан|дата=2020-10-03}}&lt;br /&gt;
&lt;br /&gt;
== Архитектура виртуальной машины ассемблера ==&lt;br /&gt;
&lt;br /&gt;
=== Ассемблер fasmg (архитектура CALM-инструкций) ===&lt;br /&gt;
Является наследником ассемблера [[flat assembler]] (fasm) со схожим синтаксисом, но в отличие от fasm не привязан ни к какой архитектуре процессора. Его [[Парадигма программирования|парадигмой]] является формирование посредством макросов выходных файлов любых форматов и с машинным кодом под любые архитектуры процессоров. Помимо макросов в fasmg присутствуют так называемые CALM-инструкции (букв. «инструкции компилируемой сборки, подобные макросам») — собственные инструкции виртуальной машины ассемблера, эквивалентные макросам, которые преобразуются транслятором в байт-код. Архитектуру этих CALM-инструкций можно считать «родной» архитектурой ассемблера fasmg. В комплекте имеются наборы CALM-инструкций для эмуляции поддержки инструкций архитектур x86, x64, 8052, AVR; разработчиком могут быть описаны наборы CALM-инструкций для поддержки любой другой архитектуры, поддержки любых выходных форматов файлов. Имеются вариации транслятора для [[Mac OS]], [[Linux]] и [[Windows]]&amp;lt;ref&amp;gt;{{Cite web |url=https://flatassembler.net/docs.php?article=fasmg |title=What is flat assembler g? |access-date=2020-10-05 |archive-date=2020-10-08 |archive-url=https://web.archive.org/web/20201008180142/https://flatassembler.net/docs.php?article=fasmg |url-status=live }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=https://flatassembler.net/docs.php?article=fasmg_manual |title=flat assembler g. User Manual |access-date=2020-10-05 |archive-date=2020-08-27 |archive-url=https://web.archive.org/web/20200827134842/http://flatassembler.net/docs.php?article=fasmg_manual |url-status=live }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=https://flatassembler.net/download.php |title=Информация о версии flat assembler g |access-date=2020-10-05 |archive-date=2020-10-08 |archive-url=https://web.archive.org/web/20201008235237/https://flatassembler.net/download.php |url-status=live }}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Язык ассемблера]]&lt;br /&gt;
* [[Дизассемблер]]&lt;br /&gt;
* [[Макропроцессор]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* &amp;#039;&amp;#039;Вострикова З. П.&amp;#039;&amp;#039; Программирование на языке ассемблера ЕС ЭВМ. М.: Наука, 1985.&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор = Галисеев Г. В.&lt;br /&gt;
|заглавие = Ассемблер для Win 32. Самоучитель&lt;br /&gt;
|место = М. |издательство = [[Диалектика (издательство)|Диалектика]]&lt;br /&gt;
|год = 2007&lt;br /&gt;
|страницы = 368&lt;br /&gt;
|isbn = 978-5-8459-1197-1&lt;br /&gt;
}}&lt;br /&gt;
* {{книга|автор =Зубков С. В.|заглавие = Ассемблер для DOS, Windows и UNIX|ссылка =https://archive.org/details/assemblerdoswind00libg_639|место = М.|издательство = ДМК Пресс|год = 2006|страницы = [https://archive.org/details/assemblerdoswind00libg_639/page/n607 608]|isbn = 5-94074-259-9}}&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор = Ирвин Кип&lt;br /&gt;
|заглавие = Язык ассемблера для процессоров Intel&lt;br /&gt;
|оригинал = Assembly Language for Intel-Based Computers&lt;br /&gt;
|место = М. |издательство = [[Вильямс (издательство)|Вильямс]]&lt;br /&gt;
|год = 2005&lt;br /&gt;
|страницы = 912&lt;br /&gt;
|isbn = 0-13-091013-9&lt;br /&gt;
}}&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор = Калашников О. А.&lt;br /&gt;
|заглавие = Ассемблер? Это просто! Учимся программировать&lt;br /&gt;
|издательство=[[БХВ-Петербург]]&lt;br /&gt;
|год = 2011&lt;br /&gt;
|страницы = 336&lt;br /&gt;
|isbn = 978-5-9775-0591-8&lt;br /&gt;
}}&lt;br /&gt;
* &amp;#039;&amp;#039;Магда Ю. С.&amp;#039;&amp;#039; Ассемблер. Разработка и оптимизация Windows-приложений. СПб.: БХВ-Петербург, 2003.&lt;br /&gt;
* &amp;#039;&amp;#039;Нортон П., Соухэ Д.&amp;#039;&amp;#039; Язык ассемблера для IBM PC. М.: Компьютер, 1992.&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор=Владислав Пирогов.&lt;br /&gt;
|заглавие=Ассемблер для Windows&lt;br /&gt;
|место={{СПб}}&lt;br /&gt;
|издательство=БХВ-Петербург&lt;br /&gt;
|год=2002&lt;br /&gt;
|страниц=896&lt;br /&gt;
|isbn=978-5-9775-0084-5&lt;br /&gt;
}}&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор=Владислав Пирогов.&lt;br /&gt;
|заглавие=Ассемблер и дизассемблирование&lt;br /&gt;
|место={{СПб}}&lt;br /&gt;
|издательство=БХВ-Петербург&lt;br /&gt;
|год=2006&lt;br /&gt;
|страниц=464&lt;br /&gt;
|isbn=5-94157-677-3&lt;br /&gt;
}}&lt;br /&gt;
* {{публикация|книга&lt;br /&gt;
|автор=Сингер М.&lt;br /&gt;
|ссылка=https://archive.org/details/singer-m-pdp-11-programming&lt;br /&gt;
|заглавие=Мини-ЭВМ PDP-11: Программирование на языке ассемблера и организация машины&lt;br /&gt;
|перевод=Пер. с англ&lt;br /&gt;
|оригинал=PDP-11. Assembler Language Programming and Machine Organization&lt;br /&gt;
|автор оригинал=Michael Singer&lt;br /&gt;
|место=М.&lt;br /&gt;
|издательство=Мир&lt;br /&gt;
|год=1984&lt;br /&gt;
|страниц=272&lt;br /&gt;
}}&lt;br /&gt;
* &amp;#039;&amp;#039;Скэнлон Л.&amp;#039;&amp;#039; Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. М.: Радио и связь, 1989.&lt;br /&gt;
* {{книга&lt;br /&gt;
|автор = Юров В., Хорошенко С.&lt;br /&gt;
|заглавие = Assembler: учебный курс&lt;br /&gt;
|место = СПб.&lt;br /&gt;
|издательство = [[Питер (издательство)|Питер]]&lt;br /&gt;
|год = 2000&lt;br /&gt;
|страницы = 672&lt;br /&gt;
|isbn = 5-314-00047-4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Ассемблеры}}&lt;br /&gt;
{{Микроконтроллеры}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ассемблер|*]]&lt;br /&gt;
[[Категория:Языки программирования со статическим распределением памяти]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LALKOVED</name></author>
	</entry>
</feed>