<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Создание программ под SynapseOS</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html</link>
    <description>Пример создания приложения &quot;Hello World&quot;, используя clang и сисфункцию вывода для &#091;&#091;https://github.com/0Nera/SynapseOS SynapseOS&#093;&#093;.&lt;br&gt;&lt;br&gt;Перед написанием любой программы нужно установить средства сборки.&lt;br&gt;В Ubuntu:&lt;br&gt;&lt;br&gt;   sudo apt install llvm lld  &lt;br&gt;&lt;br&gt;Далее перейдём к теории.&lt;br&gt;&lt;br&gt;Сисфункции в SynapseOS вызываются через прерывание 0x80.&lt;br&gt;&lt;br&gt;Регистры сисфункций:&lt;br&gt;  eax - номер сисфункций&lt;br&gt;  ebx - параметр 1&lt;br&gt;  edx - параметр 2&lt;br&gt;  ecx - параметр 3&lt;br&gt;  esi - параметр 4&lt;br&gt;  edi - параметр 5&lt;br&gt;  ebp - параметр 6&lt;br&gt;&lt;br&gt;В eax также идёт результат выполнения.&lt;br&gt;&lt;br&gt;Пример вызова сисфункции:&lt;br&gt;&lt;br&gt;   mov eax, 42 ; Получаем количество тиков&lt;br&gt;   int 80h ; Вызов прерывания&lt;br&gt;&lt;br&gt;Нас интересует сисфункция под номером 0 - вывод строки в консоль.&lt;br&gt;&lt;br&gt;На языке С это выглядит так:&lt;br&gt;&lt;br&gt;   int print_str(char *str) &#123;&lt;br&gt;     uint32_t result = 0;&lt;br&gt;     asm volatile(&quot;int $0x80&quot; &lt;br&gt;           : &quot;=a&quot;(result)         // result = eax (после выполнения)&lt;br&gt;           : &quot;a&quot;(SC_CODE_puts),   // eax = SC_CODE_puts(0)&lt;br&gt;             &quot;b&quot;(str)             // ebx = str</description>

<item>
    <title>Создание программ под SynapseOS (швондер)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#15</link>
    <pubDate>Thu, 08 Sep 2022 12:27:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt; print_str() ожидает char *, но получает конст чар, это фэйл.&lt;br&gt;&amp;gt; Вот они, современные програмюшки, несовпадение типов распарсил, &lt;br&gt;&amp;gt; а нужна ли вообще НЕконстанта в print_str - пофег. :D &lt;br&gt;&lt;br&gt;как там, разучился волшебными константами говнокодить? или ещё нет?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (pavlinux)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#14</link>
    <pubDate>Sat, 03 Sep 2022 15:35:19 GMT</pubDate>
    <description>&amp;gt; print_str() ожидает char *, но получает конст чар, это фэйл.&lt;br&gt;&lt;br&gt;Вот они, современные програмюшки, несовпадение типов распарсил, &lt;br&gt;а нужна ли вообще НЕконстанта в print_str - пофег. :D    &lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (pavlinux)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#13</link>
    <pubDate>Fri, 02 Sep 2022 16:24:09 GMT</pubDate>
    <description>Сцк, у меня аж встал от слова &quot;Сисфункция&quot; :)))&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (швондер)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#12</link>
    <pubDate>Wed, 31 Aug 2022 11:21:04 GMT</pubDate>
    <description>print_str() ожидает char *, но получает конст чар, это фэйл.&lt;br&gt;Далее, в CoC не отмечены нарушения ПДД. Это преступно, в наше время, игнорировать такой пласт правонарушений. Почему это вдруг о преследовании, угрозах, оскорблениях и тп надо сообщать &quot;лидерам проекта&quot;, но о купленном техосмотре нет? Недоработочка&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (ramipaper)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#11</link>
    <pubDate>Tue, 16 Aug 2022 05:12:51 GMT</pubDate>
    <description>&amp;gt; Чем плох FASM?&lt;br&gt;&amp;gt; У меня не UNIX, имею право делать свои сисколлы, не вижу ничего &lt;br&gt;&amp;gt; плохого в сисфункции принта без явного указания длины.&lt;br&gt;&lt;br&gt;Your ideas are really amazing. Really appreciate it.&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (0Nera)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#10</link>
    <pubDate>Tue, 09 Aug 2022 06:53:03 GMT</pubDate>
    <description>&amp;gt; еще build.py и прочий треш ;) &lt;br&gt;&lt;br&gt;Build.py выполняет ровно те задачи, которые я ему поставил:&lt;br&gt;Динамично собирает ядро&lt;br&gt;&lt;br&gt;Не вижу ничего плохого в этом&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (0Nera)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#9</link>
    <pubDate>Tue, 09 Aug 2022 06:52:21 GMT</pubDate>
    <description>Чем плох FASM?&lt;br&gt;У меня не UNIX, имею право делать свои сисколлы, не вижу ничего плохого в сисфункции принта без явного указания длины.&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (Аноним)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#7</link>
    <pubDate>Fri, 05 Aug 2022 08:20:35 GMT</pubDate>
    <description>еще build.py и прочий треш ;)&lt;br&gt;</description>
</item>

<item>
    <title>Создание программ под SynapseOS (Аноним)</title>
    <link>https://opennet.dev/openforum/vsluhforumID3/128083.html#6</link>
    <pubDate>Fri, 05 Aug 2022 08:18:43 GMT</pubDate>
    <description>Fasm, сисколы принта без длины, чем только не занимаются абы не учиться программировать&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
