<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879242</guid>
        <pubDate>Sun, 16 Oct 2022 15:07:23 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879242</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>macomics</strong>, тогда <strong class='tag-b'>callx.inc</strong> – самое то :)]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879237</guid>
        <pubDate>Sun, 16 Oct 2022 12:06:43 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879237</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=430427&view=findpost&p=3879236'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2022-10-16T12:03:23+00:00">16.10.22, 12:03</time></span><div class='quote '>Важно добавить, что при этом эти функции будут inline.</div></div><br>
Я предполагал, что в макросы будут добавлены сами вызовы, а не код функций.]]></description>
        <author>macomics</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879236</guid>
        <pubDate>Sun, 16 Oct 2022 12:03:23 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879236</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=430427&view=findpost&p=3879098'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2022-10-14T15:59:04+00:00">14.10.22, 15:59</time></span><div class='quote '>Еще можно каждую функцию выразить в виде макроса, который будет включать ее при использовании.</div></div>Важно добавить, что при этом эти функции будут inline.<br>
<br>
Кстати, я делал как-то &quot;модуль&quot; <strong class='tag-b'>callx.inc</strong>, который как предназначен для того, чтобы отфильтровывать ненужные процедуры, см. тут: <a class='tag-url' href='https://forum.sources.ru/index.php?showtopic=410162' target='_blank'>Механизм исключения неиспользуемых процедур из кода</a><br>
Сам уж забыл про это :lol:]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879098</guid>
        <pubDate>Fri, 14 Oct 2022 15:59:04 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879098</link>
        <description><![CDATA[macomics: Еще можно каждую функцию выразить в виде макроса, который будет включать ее при использовании. Это все с теми же <strong class='tag-b'>#define</strong>/<strong class='tag-b'>#ifdef</strong>, но тут хотя бы не надо вручную за этим следить. И вызовы к функции будут по ее имени, а не через команду <strong class='tag-b'>call</strong>.]]></description>
        <author>macomics</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879082</guid>
        <pubDate>Fri, 14 Oct 2022 12:10:07 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879082</link>
        <description><![CDATA[Qraizer: Компилятор в общем случае просто не знает, используется ли функция. Тот факт, что она не используется тут, не означает, что она не вызывается откуда-то ещё. Другое дело линкер, который из всех объектников собирает единый исполняемый модуль.<br>Так что да. Самый надёжный вариант – раскидать все функции по разным .asm, по одной на файл, все их скомпилить в .obj и собрать из них .lib. При сборке приложения просто указать линкеру эту либу, и он сам вытащит оттуда всё, что требуется, и ничего лишнего.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879058</guid>
        <pubDate>Fri, 14 Oct 2022 09:45:50 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879058</link>
        <description><![CDATA[kin01: <strong class='tag-b'>Jin X</strong>, всё сегмент кода :-)]]></description>
        <author>kin01</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879047</guid>
        <pubDate>Fri, 14 Oct 2022 09:01:38 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879047</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>kin01</strong>, потому что в ассемблерном коде всё может быть переплетено как угодно. Можно прыгать в функцию, скажем, просто убрав ret в конце первой; брать адреса одних меток и добавлением смещений других входить/брать что-то внутри других функции и пр, пр, пр. В некоторых ассемблерах вообще нет понятия функций, есть просто метки. Да и в masm с помощью proc можно просто разделять блоки кода, а не реальные функции. И т.д.<br>
В fasm это реализовано просто. Перед каждой функцией пишем <strong class='tag-b'>if used INTTOSTR</strong>, в конце – <strong class='tag-b'>end if</strong>. Если указанный литерал (INTTOSTR) не используется, код не включается.]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879031</guid>
        <pubDate>Fri, 14 Oct 2022 07:40:36 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879031</link>
        <description><![CDATA[kin01: Значит это был другой ассемблер, помню что где-то была такая возможность, автоматически. Интересно, почему это не реализовано на стадии ассемблирования/линковки. Придётся дублировать один и тот же код на несколько проектов и исправлять если что одно и тоже в нескольких файлах.]]></description>
        <author>kin01</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879018</guid>
        <pubDate>Fri, 14 Oct 2022 05:32:20 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879018</link>
        <description><![CDATA[Jin X: В masm32 такое сделать заморочно. Нужно либо прописывать макросы типа <strong class='tag-b'>#ifdef USE_INTTOSTR</strong>, а в главных исходниках делать <strong class='tag-b'>#define USE_INTTOSTR</strong> для каждой функции. Естественно, не забывая о зависимостях (когда одна функция использует другую). Либо компилировать <em class='tag-i'>каждую</em> функцию в отдельный объектный файл (obj) и объединять их в библиотеку (lib). Тогда при линковке будут добавляться только те объектники, которые используются.<br>
В fasm такое делается элементарно, там есть <strong class='tag-b'>if used</strong>.]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879007</guid>
        <pubDate>Thu, 13 Oct 2022 22:19:20 +0000</pubDate>
        <title>добавлять только используемый код</title>
        <link>https://forum.sources.ru/index.php?showtopic=430427&amp;view=findpost&amp;p=3879007</link>
        <description><![CDATA[kin01: Есть файл utils.inc, в котором набор функций, он используется в нескольких проектах. В каждом проекте нужны не все функции. Подскажите, пожалуйста, опцию компилятора, чтобы в исполняемый файл каждого из проектов добавлялся только используемый код.]]></description>
        <author>kin01</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	