<?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=417875&amp;view=findpost&amp;p=3827408</guid>
        <pubDate>Fri, 03 Apr 2020 07:07:48 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827408</link>
        <description><![CDATA[JoeUser: UPD: Отбой, сам разобрался ...<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">stuff db 31 dup(0)</div><div class="code_line">hlt</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">fasm test.asm test.bin</div></ol></div></div></div></div>]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827404</guid>
        <pubDate>Fri, 03 Apr 2020 06:45:01 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827404</link>
        <description><![CDATA[JoeUser: <strong class='tag-b'>Jin X</strong>, хелп&#33;  :) <br>
Нужен исходник и коммандная строка fasm чтобы в результате получить бинарный файл, <br>
размером 32 байта, заполненный нулями, а последний байт пусть будет F4.]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827336</guid>
        <pubDate>Thu, 02 Apr 2020 11:53:59 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827336</link>
        <description><![CDATA[JoeUser: <strong class='tag-b'>Jin X</strong>, понятненько ... я не прощаюсь&#33;  :D]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827292</guid>
        <pubDate>Thu, 02 Apr 2020 06:59:27 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827292</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827286'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-04-02T01:50:30+00:00">02.04.20, 01:50</time></span><div class='quote '>При таком оформлении без явного указания секции .idata компилируется с ошибкой. А почему в первом примере этой секции не требовалось?</div></div>Потому что в первом примерё она задаётся в макросе <strong class='tag-b'>.end</strong>.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827286'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-04-02T01:50:30+00:00">02.04.20, 01:50</time></span><div class='quote '>Имеет ли смысл секцию .data объявлять как &#39;readable&#39; и добавлять секцию .bss как &#39;readable writeable&#39;<br>
Кстати не совсем понятно назначение .bss, в чем особенность, отличие от .data?</div></div>Секция &#39;.data&#39; вполне может быть и writeable.<br>
Разница их в том, что в &#39;.data&#39; обычно хранятся инициализированные данные, а &#39;.bss&#39; – нет (это секция неинициализированных данных, хотя фактически данные, заданные в конце секции через rb, rw, rd, rq, обнуляются системой при загрузке кода, как и в &#39;.data&#39;). По большому счёту, на практике разницы нет, можно писать rb в &#39;.data&#39; и db в &#39;.bss&#39;. Т.е. fasm просто даёт им разные имена, вот и вся разница :)]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827286</guid>
        <pubDate>Thu, 02 Apr 2020 01:50:30 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827286</link>
        <description><![CDATA[JoeUser: Еще немножко вопросов  ... :) <br>
<br>
Переписал свой первый пример с другим форматом оформления секций:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">format PE64 console</div><div class="code_line">entry start</div><div class="code_line">&nbsp;</div><div class="code_line">include &quot;C:/Tools/Fasm/INCLUDE/win64ax.inc&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">section &#39;.data&#39; data readable writeable</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Message &nbsp; &nbsp; &nbsp; &nbsp; db &#39;Hello World!&#39;,0</div><div class="code_line">&nbsp;&nbsp;Message.length &nbsp;= $ - Message</div><div class="code_line">&nbsp;&nbsp;HandleFile &nbsp; &nbsp; &nbsp;dq ?</div><div class="code_line">&nbsp;</div><div class="code_line">section &#39;.text&#39; code readable executable</div><div class="code_line">&nbsp;</div><div class="code_line">start:</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;sub rsp, 40 &nbsp;; резервирование в стеке (4 * 8) + 8</div><div class="code_line">&nbsp;&nbsp;and spl, -16 ; и выравнивание на 16</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;invoke GetStdHandle, STD_OUTPUT_HANDLE</div><div class="code_line">&nbsp;&nbsp;mov [HandleFile],rax</div><div class="code_line">&nbsp;&nbsp;stdcall PrintFunc, HandleFile</div><div class="code_line">&nbsp;&nbsp;invoke ExitProcess,0</div><div class="code_line">&nbsp;</div><div class="code_line">proc PrintFunc</div><div class="code_line">&nbsp;&nbsp;invoke WriteConsole, [HandleFile], Message, Message.length, 0, 0 &nbsp;</div><div class="code_line">&nbsp;&nbsp;ret</div><div class="code_line">endp</div><div class="code_line">&nbsp;</div><div class="code_line">section &#39;.idata&#39; import data readable writeable</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;library kernel32,&#39;KERNEL32.DLL&#39;</div><div class="code_line">&nbsp;&nbsp;include &#39;api\kernel32.inc&#39;</div></ol></div></div></div></div><br>
<br>
Вопросы:<br>
<ol class="tag-list" type="1"><li>При таком оформлении без явного указания секции .idata компилируется с ошибкой. А почему в первом примере этой секции не требовалось?</li><li>Имеет ли смысл секцию .data объявлять как &#39;readable&#39; и добавлять секцию .bss как &#39;readable writeable&#39;</li><li>Кстати не совсем понятно назначение .bss, в чем особенность, отличие от .data?</li></ol>]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827243</guid>
        <pubDate>Wed, 01 Apr 2020 16:48:55 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827243</link>
        <description><![CDATA[Jin X: Макросы можно не использовать.<br>Можно даже директивы не использовать, но в довольно ограниченных случаях.<br>Часто возникает необходимость указывать секции (code, data, bss), а тут уже есть различия.]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827146</guid>
        <pubDate>Tue, 31 Mar 2020 19:48:12 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827146</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827141'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T17:56:13+00:00">31.03.20, 17:56</time></span><div class='quote '>Помимо компьютера (работающего) нужно всего 3 вещи: голова, пальцы и клавиатура. А, ну и желательно, чтобы электричество было, лучше бесперебойное.<br>
Вообще, есть уже подобное, называется NASMX. Сходи-ка ты в Полезные ссылки, поищи там это хитрое забугорное слово и кликни на ссылку под ним.</div></div><br>
А если не использовать макросы вообще? Можно будет один и тот же код копилять и fasm, и nasm, и gas (c intel флагом)?]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827141</guid>
        <pubDate>Tue, 31 Mar 2020 17:56:13 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827141</link>
        <description><![CDATA[Jin X: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T04:53:49+00:00">31.03.20, 04:53</time></span><div class='quote '>И вот мой выбор пал на тему &quot;ассемблер&quot;</div></div>И это абсолютно верный выбор, особенно в условиях кризиса ;)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T04:53:49+00:00">31.03.20, 04:53</time></span><div class='quote '>Ассемблеров тьма, мне приглянулся fasm.</div></div>Ты не перестаёшь меня удивлять правильностью своих решений&#33;<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T04:53:49+00:00">31.03.20, 04:53</time></span><div class='quote '>1) Это фишки собственных макросов fasm&#39;а?</div></div>Да, это фишки макросов из папки include.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T04:53:49+00:00">31.03.20, 04:53</time></span><div class='quote '>2) А как такое же написать, к примеру, для nasm?</div></div>Помимо компьютера (работающего) нужно всего 3 вещи: голова, пальцы и клавиатура. А, ну и желательно, чтобы электричество было, лучше бесперебойное.<br>
Вообще, есть уже подобное, называется NASMX. Сходи-ка ты в <a class='tag-url' href='https://forum.sources.ru/index.php?showtopic=413570' target='_blank'>Полезные ссылки</a>, поищи там это хитрое забугорное слово и кликни на ссылку под ним.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=417875&view=findpost&p=3827086'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-03-31T04:53:49+00:00">31.03.20, 04:53</time></span><div class='quote '>4) Какова ценность вот такого &quot;синтаксиса&quot; (вдруг потом понадобится gas&#39;ом компилячить)?</div></div>&quot;Такого&quot; – это какого?<br>
У каждого асма свои прибабахи. У MASM – одни, у NASM – другие, у fasm – третьи. Да и у GAS их хватает, чего стоит только AT&amp;T-синтаксис.<br>
Придётся переводить тогда, куда ж деваться?&#33; Тут нет единого стандарта в отношении отдельных нюансов синтаксиса и уж тем паче директив и макросов, как у плюсов.<br>
Ещё хуже, если ты напишешь код под 64 бита под Windows, а тебе потом нужно будет переводить его в 32-битный, да ещё и под Linux. А ещё лучше (вернее, хуже) – под ARM какой-нибудь.<br>
Вот захочу я свой асм создать <span class="tag-color tag-color-named" data-value="gray" style="color: gray">(вернее, я уже хочу... начну, хотел сказать)</span>, а там такое будет&#33; Тогда вообще непонятно станет, как дальше жать.]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827086</guid>
        <pubDate>Tue, 31 Mar 2020 04:53:49 +0000</pubDate>
        <title>fasm синтаксис</title>
        <link>https://forum.sources.ru/index.php?showtopic=417875&amp;view=findpost&amp;p=3827086</link>
        <description><![CDATA[JoeUser: Привет всем&#33;<br>
<br>
Решил немного разгрузить мозги чем-то другим, отличным от рабочих вопросов. И вот мой выбор пал на тему &quot;ассемблер&quot; :) В свое время плотно прогал на Turbo Pascal 5.5 + TASM, но это было ооочень давно. В основном это касалось работы с видеоадаптером CGA. А когда появились EGA/VGA - актуальность начала падать. Ну это так, предисловие что-ли. Сейчас решил немного окунуться &quot;в современнсть&quot;. Ассемблеров тьма, мне приглянулся fasm. Написал простенькую прогу для теста:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">format PE64 console</div><div class="code_line">&nbsp;</div><div class="code_line">include &quot;C:/Tools/Fasm/INCLUDE/win64ax.inc&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">.data</div><div class="code_line">&nbsp;</div><div class="code_line">Message &nbsp; &nbsp; &nbsp; &nbsp; db &#39;Hello World!&#39;,0</div><div class="code_line">Message.length &nbsp;= $ - Message</div><div class="code_line">HandleFile &nbsp; &nbsp; &nbsp;dq ?</div><div class="code_line">&nbsp;</div><div class="code_line">.code</div><div class="code_line">&nbsp;</div><div class="code_line">proc PrintFunc</div><div class="code_line">&nbsp;&nbsp;stdcall [WriteConsole], [HandleFile], Message, Message.length, 0, 0 &nbsp;</div><div class="code_line">&nbsp;&nbsp;ret</div><div class="code_line">endp</div><div class="code_line">&nbsp;</div><div class="code_line">start:</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;sub rsp, 40 &nbsp;; резервирование в стеке (4 * 8) + 8</div><div class="code_line">&nbsp;&nbsp;and spl, -16 ; и выравнивание на 16</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;stdcall [GetStdHandle], STD_OUTPUT_HANDLE</div><div class="code_line">&nbsp;&nbsp;mov [HandleFile],rax</div><div class="code_line">&nbsp;&nbsp;stdcall PrintFunc, HandleFile</div><div class="code_line">&nbsp;&nbsp;stdcall [ExitProcess],0</div><div class="code_line">&nbsp;</div><div class="code_line">.end start</div></ol></div></div></div></div><br>
<br>
Где-то по докам, где-то по примерам из сети. Но обратил внимание на странное оформление секций, процедур. Вот и возник ряд вопросов:<br>
<br>
1) Это фишки собственных макросов fasm&#39;а?<br>
2) А как такое же написать, к примеру, для nasm?<br>
3) А такое же, написанное для п.2 потом сам fasm компильнет?<br>
4) Какова ценность вот такого &quot;синтаксиса&quot; (вдруг потом понадобится gas&#39;ом компилячить)?<br>
<br>
Сорри, если вопросы совсем наивные  :blush:]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	