<?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%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0</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%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0&amp;action=history"/>
	<updated>2026-07-19T10:38:40Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0&amp;diff=15930&amp;oldid=prev</id>
		<title>imported&gt;Sldst-bot: Уточнение даты установки ш:Нет источников: 2010-10-31 (до 2024-10-20 ш:Rq с параметром sources)</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9C%D0%B0%D0%BA%D1%80%D0%BE%D1%81_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0&amp;diff=15930&amp;oldid=prev"/>
		<updated>2025-09-05T12:09:23Z</updated>

		<summary type="html">&lt;p&gt;Уточнение даты установки &lt;a href=&quot;/mediawiki/index.php?title=%D0%A8:%D0%9D%D0%B5%D1%82_%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Ш:Нет источников (страница не существует)&quot;&gt;ш:Нет источников&lt;/a&gt;: &lt;a href=&quot;/mediawiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F/28993258&quot; title=&quot;Служебная:Изменения/28993258&quot;&gt;2010-10-31&lt;/a&gt; (до &lt;a href=&quot;/mediawiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F/140913891&quot; title=&quot;Служебная:Изменения/140913891&quot;&gt;2024-10-20&lt;/a&gt; &lt;a href=&quot;/mediawiki/index.php?title=%D0%A8:Rq&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Ш:Rq (страница не существует)&quot;&gt;ш:Rq&lt;/a&gt; с параметром sources)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Макрос&amp;#039;&amp;#039;&amp;#039; — символьное имя, заменяющее несколько команд [[язык ассемблера|языка ассемблера]].&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;
Использование макросов имеет ряд достоинств:&lt;br /&gt;
* Упрощение и ускорение написания [[компьютерная программа|программы]].&lt;br /&gt;
* Повышение компактности [[Исходный код|исходного кода]] и его наглядности («[[Удобочитаемость#Программирование|читабельности]]»).&lt;br /&gt;
* Упрощение последующего редактирования текста программы, снижение вероятности внесения рутинных ошибок.&lt;br /&gt;
* Более быстрое выполнение по сравнению с процедурой, так как макрос не требует использования инструкций перехода на процедуру и возврата из неё.&lt;br /&gt;
&lt;br /&gt;
В то же время, использование макросов может иметь и некоторые недостатки:&lt;br /&gt;
* Использование «шаблонного кода», в то время как для каждой конкретной ситуации код, возможно, можно улучшить.&lt;br /&gt;
* Вставка в текст программы одного и того же макроса, генерирующего один и тот же код N раз, может требовать больше памяти программ, чем описание процедуры и затем вызов её те же N раз.&lt;br /&gt;
&lt;br /&gt;
== Пример объявления и вставки макроса ==&lt;br /&gt;
Объявление макроса на диалекте ассемблера [[FASM]] может иметь вид:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
macro stos0 {&lt;br /&gt;
      xor al,al&lt;br /&gt;
      stosb&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
При дальнейшей вставке макроса в текст строки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
stos0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
транслятор заменит его на последовательность&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
xor al,al&lt;br /&gt;
stosb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Ассемблер]]&lt;br /&gt;
* [[Язык ассемблера]]&lt;br /&gt;
* [[Макрокоманда]]&lt;br /&gt;
&lt;br /&gt;
{{Нет источников |дата=2010-10-31}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ассемблер]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sldst-bot</name></author>
	</entry>
</feed>