<?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=230072&amp;view=findpost&amp;p=3738123</guid>
        <pubDate>Sun, 27 Aug 2017 19:00:18 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3738123</link>
        <description><![CDATA[Jin X: А я помню, что тренировался в кодинге (в т.ч. резидентах) на друге: писал какую-нибудь прогу, которая прописывается в MBR или подменяется какой-нибудь загрузочный файл программы (типа DN.COM) или прописывается в autoexec.bat и дальше происходят какие-нибудь приколы. Начиная от несложных визуальных эффектов, заканчивая различными делами, мешающим работать (например, вылезает сообщение и надо было как-то на него отреагировать правильно... не помню уже даже, чтоб пример привести, уже прошло почти 20 лет). Разумеется, у каждой программы была функция восстановления всего в первоначальное состояние (либо я приходил в следующий раз и восстанавливал всё, заодно запуская что-то новое :lol:). Но это не вирусы, а просто программки всякие-разные, резиденты, как правило :)]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3738106</guid>
        <pubDate>Sun, 27 Aug 2017 09:49:19 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3738106</link>
        <description><![CDATA[Ethereal: Чисто чтобы оживить. Я когда-то написал, а потом не стал публиковать, подумал, что похоже на самолюбование. Но раз тишина, то закину.<br><br>К слову могу рассказать идею нерезидентного загрузочного вируса, если она будет интересна.<br><br>Под IBM PC + MS-DOS загрузочные вирусы были резидентными. Отрезали себе чуток от верхушки памяти, перехватывали int 13h и в резиденте висели. А вот как мог работать НЕрезидентный загрузочный вирус :<br><br>У нас в универе типично возле ДВЕ-3 лежала стопка дискет, вечно неподписанных, и работа начиналась с попытки загрузиться с каждой из них по очереди, пока наконец не найдешь системную. Если по ошибке грузился с не системной, то появлялась надпись<br>не_помню_что-F-NO BOOT ON DEVICE<br>дальше были два варианта действий, выбираемых на автомате<br>1.) нажать СБРОС, вставить новую дискету, набрать на клавиатуре B MX0 чтобы с нее загрузиться<br>2.) вставить новую дискету, нажать СБРОС, набрать на клавиатуре B MX0 чтобы с нее загрузиться<br>Вот мой вирус размножался при втором сценарии. Будучи запущеным с предыдущей дискеты он ждал открытия дисковода, закрытия, считывал загрузочный сектор у новой дискеты, проверял системный ли он (у не системного больше половины сектора не использовалось и было заполнено нулями) и если сектор не системный тупо переписывал его собой. Все происходило мгновенно - моргание светодиода на дисководе, тихий звук &quot;щелк&quot; и заражение совершено. Вот такая простая идея нерезидентного загрузочного вируса из тех времен, когда еще не появились винчестеры и работали только с дискетами.<br><br>О самом вирусе. Если загрузился с завирусованной дискеты, то в 9 случаях из 10 он имитировал загрузку с несистемной дискеты и выдавал на экран все то-же<br>не_помню_что-F-NO BOOT ON DEVICE<br>и начинал ждать откытия, закрытия дисковода для заражения следующей. И в одном случае из 10-и выдавал красивые видеоэффекты на графический дисплей.<br>Вопрос с предотвращением повторного заражения дискеты решался на автомате. Поскольку у зараженной дискеты большая часть системного сектора оказывалась заполнена кодом, то проверку &quot;больше половины сектора заполнено нулями&quot; она не проходила. Таким образом заражались только еще не зараженные несистемные дискеты.<br>Возможно это был единственный нерезидентный среди всех существовавших когда-либо загрузочных вирусов. :blush: На практике размножался так - в результате неосознанной деятельностии пользователей за сутки-двое вся пачка несистемных дискет возле ДВК-3 оказывалась завирусованной. Потому-что сценарий 2 возникал где-то 50/50.]]></description>
        <author>Ethereal</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737807</guid>
        <pubDate>Wed, 23 Aug 2017 21:14:07 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737807</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737784'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2017-08-23T16:16:09+00:00">23.08.17, 16:16</time></span><div class='quote '>Инжектил небойсть в explorer.exe? :lol:</div></div>Нет, в COMMAND.COM, не меняя его размер. В памяти некая область &quot;системные данные&quot; (по выводу mem.exe) и принадлежащая модулю MSDOS, владела одним-единственным int 13h. Больше ничем троян не проявлялся. Этого хватило на всё, включая соблюдение реентерабельности int 21h и совместимости с QEMM-овыми stealth-режимами.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737784'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2017-08-23T16:16:09+00:00">23.08.17, 16:16</time></span><div class='quote '>И наверное в его же NTFS-потоке хранил тело &quot;следителя&quot;? :lol: </div></div>Это работало в DOS. Тогда игры под винду ещё не делались. Win9x однако поддерживалась, но посредством специального процесса, который было видно, но избавиться от него можно был только вместе с виндой. Инфа в шифрованном виде писалась в выделенные сектора на диске, для её чтения у хозяев зала была специальная утилита на дискетке. Да, если кто-либо пробовал писать на диск, минуя стандартные средства, то получал стандартный же DOS-овый зависон с предупреждением о предотвращении т.о. порчи файловой системы несовместимой с длинными именами файлов старой программой. Но не троян, в котором эта проблема тоже обходилась руками даже под виндой.<br>
В общем, это был хороший троян, работники его &quot;взломать&quot; не смогли.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737787</guid>
        <pubDate>Wed, 23 Aug 2017 16:45:10 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737787</link>
        <description><![CDATA[Jin X: А ещё тема была чёткая – demoscene, очень увлекался, но скорее как зритель. Хотя сам писал некоторые вещи, но не шибко крутые. Какую-то демку делал на паскале с асм-вставками, ещё до 2000 :lol:<br>
Но не доделал, забросил... хотя исходники сохранились... :rolleyes: <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2017-08-23T16:46:00+00:00">23.08.17, 16:46</time></span></span><br>
<strong class='tag-b'>C2H5OH</strong>,  :victory:]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737785</guid>
        <pubDate>Wed, 23 Aug 2017 16:26:00 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737785</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737771'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ethereal &#064; <time class="tag-quote__quoted-time" datetime="2017-08-23T15:09:29+00:00">23.08.17, 15:09</time></span><div class='quote '>Но он был абсолютно безобидным с любой точки зрения. Поражал только несистемные дискеты и при попытке загрузиться с нмх радовал глаз видеоэффектами на КГД (квазиграфическом дисплее). Вирус был добрым и красивым. </div></div><br>
Так это совершенно меняет дело&#33;  :good:  Кстати, безвредные спецэффекты, вносящие разнообразие в жизнь юзеров я тоже писал (только принципиально не добавил механизм размножения). :rolleyes: <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2017-08-23T16:27:12+00:00">23.08.17, 16:27</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737784'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2017-08-23T16:16:09+00:00">23.08.17, 16:16</time></span><div class='quote '> Антиоффтопик: нет пункта &quot;редко использую&quot; - я бы проголосил) </div></div><br>
Угу, и нужен пункт &quot;последний раз пользовался X лет назад&quot;.  :D]]></description>
        <author>Руслан</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737784</guid>
        <pubDate>Wed, 23 Aug 2017 16:16:09 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737784</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737774'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2017-08-23T15:24:33+00:00">23.08.17, 15:24</time></span><div class='quote '>Помню, как на заказ писал троянца, следящего за временем использования компа. Использовался в компьютерном игровом зале, чтобы работники не тырили деньги, занижая проданные игрокам часы. </div></div><br>
Инжектил небойсть в explorer.exe? :lol: И наверное в его же NTFS-потоке хранил тело &quot;следителя&quot;? :lol: <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2017-08-23T16:19:32+00:00">23.08.17, 16:19</time></span></span><br>
Антиоффтопик: нет пункта &quot;редко использую&quot; - я бы проголосил)]]></description>
        <author>JoeUser</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737774</guid>
        <pubDate>Wed, 23 Aug 2017 15:24:33 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737774</link>
        <description><![CDATA[Qraizer: Помню, как на заказ писал троянца, следящего за временем использования компа. Использовался в компьютерном игровом зале, чтобы работники не тырили деньги, занижая проданные игрокам часы.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737771</guid>
        <pubDate>Wed, 23 Aug 2017 15:09:29 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737771</link>
        <description><![CDATA[Ethereal: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737704'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T19:35:14+00:00">22.08.17, 19:35</time></span><div class='quote '>Зачем?   </div></div><br>
Зачем писал вирусы ? А потому-что, если поделить программистов на тех кто может написать вирус и тех, кто не может, я хотел относиться к первой категории.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737704'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T19:35:14+00:00">22.08.17, 19:35</time></span><div class='quote '>несколько негативное отношение к людям, портившим данные вирьём</div></div>Не люблю когда люди домысливают то, что я не говорил. Я написал, что писал вирусы. Но я не писал, что я их распускал. Вернее распустил только один - нерезидентный загрузочный вирус для ДВК-3. Но он был абсолютно безобидным с любой точки зрения. Поражал только несистемные дискеты и при попытке загрузиться с нмх радовал глаз видеоэффектами на КГД (квазиграфическом дисплее). Вирус был добрым и красивым. И единственным в своем классе. А вирусы MS-DOS жили только при их отладке и оставались в исходниках, пока эти исходники не потеряли ценность вместе с потерей актуальности.<br>
Кстати, ассоциация вируса с порчей данных типична скорей для юзверя, чем для системного программиста. Вирус не должен портить данные, если он написан корректно. Для него самый шик быть незаметным, иначе он кривой. Случай специальной пакостной функции не рассматриваем.]]></description>
        <author>Ethereal</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737757</guid>
        <pubDate>Wed, 23 Aug 2017 12:57:41 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737757</link>
        <description><![CDATA[Mikl___: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737709'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>C2H5OH &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T20:10:52+00:00">22.08.17, 20:10</time></span><div class='quote '>Ethereal, Jin X</div></div><br>
Привет, всем&#33;]]></description>
        <author>Mikl___</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737709</guid>
        <pubDate>Tue, 22 Aug 2017 20:10:52 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737709</link>
        <description><![CDATA[C2H5OH: <strong class='tag-b'>Ethereal</strong>, <strong class='tag-b'>Jin X</strong><br>
теперь и я с вами, посоны&#33;]]></description>
        <author>C2H5OH</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737704</guid>
        <pubDate>Tue, 22 Aug 2017 19:35:14 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737704</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737664'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ethereal &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T14:38:26+00:00">22.08.17, 14:38</time></span><div class='quote '>Ну а давным давно будучи студентом пописывал вирусы, только канули те вирусы в лету вместе с MS-DOS. </div></div><br>
Зачем?  &lt;_&lt; <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737700'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T19:17:54+00:00">22.08.17, 19:17</time></span><div class='quote '>Здесь атмосфера дружественная</div></div><br>
Ну да, ну да. Нинаю, у меня почему то несколько негативное отношение к людям, портившим данные вирьём. Хотя мои системы во времена ДОС были защищены самописным софтом (а? ловил раз или два вирьё, просто удалил и всё), но вот всё равно почему то негативное...  :-? <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=3737700'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2017-08-22T19:17:54+00:00">22.08.17, 19:17</time></span><div class='quote '>Мало только пишут в этот раздел сейчас...</div></div><br>
А &quot;чё писать, если и так всё понятно&quot;?  :-?  Или &quot;а чё писать, если нихрена не понятно&quot;?]]></description>
        <author>Руслан</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737700</guid>
        <pubDate>Tue, 22 Aug 2017 19:17:54 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737700</link>
        <description><![CDATA[Jin X: Добро пожаловать, Артур&#33; ;) <br>Здесь атмосфера дружественная, админы адекватные :D<br><br>Мало только пишут в этот раздел сейчас...<br>Но инициатива приветствуется :victory:]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737664</guid>
        <pubDate>Tue, 22 Aug 2017 14:38:26 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3737664</link>
        <description><![CDATA[Ethereal: Также скажу про странную формулировку пунктов. Получается, что если не пишешь на чистом ассемблере всегда, а только часто, то это сводится к вставкам в ЯВУ.<br><br>Понятно, что труповыкоп, но это мое первое сообщение на этом форуме. Надеюсь, здесь будет лучше, чем на cyberforum, а то я уже в летах и когда некое молодое дарование, которое тебе в сыны годится, безо всяких объяснений удаляет твои посты, то это реально задевает и в конце концов я там вспылил.<br><br>Часть моей работы - реверс-инженерия и там ассемблер всегда. Причем приходится иметь дело с массой разных экзотических архитектур, к которым бывает даже дизассемблера не найти. Поэтому приходилось и дизассемблеры писать и эмуляторы этих архитектур. Так-что ассемблеров видывал много и разных. Также писал много на ассемблере для микроконтроллеров. Также докатился до того, что на ассемблере написал собственный компилятор Форта и писал уже используя собственный компилятор. Ну а давным давно будучи студентом пописывал вирусы, только канули те вирусы в лету вместе с MS-DOS.]]></description>
        <author>Ethereal</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3271593</guid>
        <pubDate>Sat, 09 Feb 2013 04:31:13 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3271593</link>
        <description><![CDATA[aleksei.sascha: Sparky&#33;  When you get a job say that you have learned the assembler , it is welcomed.]]></description>
        <author>aleksei.sascha</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3265151</guid>
        <pubDate>Thu, 24 Jan 2013 13:40:44 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3265151</link>
        <description><![CDATA[aleksei.sascha: Семейсто 8-разрядных микроконтроллеров  , ставшее к настоящему времени промышленным<br>стандартом.Зарубежные и отечественные фирмы выпускают разнообразнейшие микроконтроллеры.<br> В пользу такого выбора говорит и то,что на рынке <br>микросхем имеется богатый набор перифирийных устройств,К счастью,специфика архитектуры различных семейств<br>микроконтроллеров не столь существенна по сравнению со спецификой языка Ассемблера]]></description>
        <author>aleksei.sascha</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3265064</guid>
        <pubDate>Thu, 24 Jan 2013 11:54:33 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3265064</link>
        <description><![CDATA[aleksei.sascha: пишу программы только на чистом ассемблере :yes: <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-01-24T11:57:53+00:00">24.01.13, 11:57</time></span></span><br>
Для себя&#33; И источник дохода&#33; <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-01-24T12:29:22+00:00">24.01.13, 12:29</time></span></span><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">.386</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; .model small, stdcall</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; option casemap :none</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; assume fs:nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include \MASM32\INCLUDE\kernel32.inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include \MASM32\INCLUDE\user32.inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include \MASM32\INCLUDE\ntdll.inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include \MASM32\INCLUDE\gdi32.inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include \MASM32\INCLUDE\windows.inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; includelib \MASM32\LIB\kernel32.lib</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; includelib \MASM32\LIB\user32.lib</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; includelib \MASM32\LIB\ntdll.lib</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; includelib \MASM32\LIB\gdi32.lib</div><div class="code_line">&nbsp;</div><div class="code_line">.data</div><div class="code_line">text db &quot;Вот самая маленькая Прога! :crazy: &quot;, 0</div><div class="code_line">fontname db &quot;ALEX&quot;, 0</div><div class="code_line">&nbsp;</div><div class="code_line">msgina db &quot;msgina.dll&quot;,0</div><div class="code_line">ptitle db &quot; :ph34r: &nbsp;&quot;, 0</div><div class="code_line">ptext db &quot; &nbsp;;) &nbsp;;) &quot;, 0</div><div class="code_line">&nbsp;</div><div class="code_line">.data?</div><div class="code_line">DC &nbsp; &nbsp; &nbsp; db 4 dup (?)</div><div class="code_line">ShellDimScreen dd ?</div><div class="code_line">x dd ?</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">.code</div><div class="code_line">&nbsp;</div><div class="code_line">start:</div><div class="code_line">&nbsp;</div><div class="code_line">call GetDesktopWindow</div><div class="code_line">push eax</div><div class="code_line">call GetWindowDC &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">mov dword ptr ds:[DC], eax</div><div class="code_line">&nbsp;</div><div class="code_line">push TRANSPARENT</div><div class="code_line">push dword ptr ds:[DC]</div><div class="code_line">call SetBkMode</div><div class="code_line">&nbsp;</div><div class="code_line">push White</div><div class="code_line">push dword ptr ds:[DC]</div><div class="code_line">call SetTextColor</div><div class="code_line">&nbsp;</div><div class="code_line">push offset fontname</div><div class="code_line">push DEFAULT_PITCH or FF_ROMAN</div><div class="code_line">push DEFAULT_QUALITY</div><div class="code_line">push CLIP_DEFAULT_PRECIS</div><div class="code_line">push OUT_DEFAULT_PRECIS</div><div class="code_line">push RUSSIAN_CHARSET</div><div class="code_line">push 0</div><div class="code_line">push FALSE</div><div class="code_line">push FALSE</div><div class="code_line">push 400</div><div class="code_line">push 0</div><div class="code_line">push 0</div><div class="code_line">push 0</div><div class="code_line">push 50</div><div class="code_line">call CreateFontA &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">push eax</div><div class="code_line">push dword ptr ds:[DC]</div><div class="code_line">call SelectObject</div><div class="code_line">&nbsp;</div><div class="code_line">push offset text</div><div class="code_line">call lstrlenA</div><div class="code_line">&nbsp;</div><div class="code_line">push eax</div><div class="code_line">push offset text</div><div class="code_line">push 150</div><div class="code_line">push 150</div><div class="code_line">push dword ptr ds:[DC]</div><div class="code_line">call TextOutA</div><div class="code_line">&nbsp;</div><div class="code_line">call GetDesktopWindow</div><div class="code_line">&nbsp;</div><div class="code_line">push dword ptr ds:[DC]</div><div class="code_line">push eax</div><div class="code_line">call ReleaseDC</div><div class="code_line">&nbsp;</div><div class="code_line">push offset msgina</div><div class="code_line">call LoadLibraryA</div><div class="code_line">&nbsp;</div><div class="code_line">push 16</div><div class="code_line">push eax</div><div class="code_line">call GetProcAddress</div><div class="code_line">&nbsp;</div><div class="code_line">mov dword ptr ds:[ShellDimScreen], eax</div><div class="code_line">&nbsp;</div><div class="code_line">push offset x</div><div class="code_line">push offset x</div><div class="code_line">call eax</div><div class="code_line">&nbsp;</div><div class="code_line">push 0</div><div class="code_line">push offset ptext</div><div class="code_line">push offset ptitle</div><div class="code_line">push 0</div><div class="code_line">call MessageBoxA</div><div class="code_line">&nbsp;</div><div class="code_line">push 0</div><div class="code_line">call ExitProcess</div><div class="code_line">end start</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>aleksei.sascha</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3264417</guid>
        <pubDate>Wed, 23 Jan 2013 07:38:20 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3264417</link>
        <description><![CDATA[Pacific: <strong class='tag-b'>aleksei.sascha</strong><br>
Пишешь для себя или это источник дохода? Какой функционал у самой большой программы, написанной тобой? Не встречал людей, которые бы писали только на асме, и это было бы их основной работой.]]></description>
        <author>Pacific</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3264323</guid>
        <pubDate>Tue, 22 Jan 2013 20:27:52 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=3264323</link>
        <description><![CDATA[aleksei.sascha: Всегда, пишу программы только на чистом ассемблере :good:]]></description>
        <author>aleksei.sascha</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2373766</guid>
        <pubDate>Mon, 21 Sep 2009 11:59:52 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2373766</link>
        <description><![CDATA[wwwkiller: вообще не знаю и не использую]]></description>
        <author>wwwkiller</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371761</guid>
        <pubDate>Sat, 19 Sep 2009 06:12:16 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371761</link>
        <description><![CDATA[miksayer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2371552'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pourtous &#064; <time class="tag-quote__quoted-time" datetime="2009-09-18T20:20:14+00:00">18.09.09, 20:20</time></span><div class='quote '>Странная формулировка пунктов.<br>
Я вот, например, использую для вставок либо там, где это сильно удобней, либо там, где надо заточить mmx/sse. Но такие ситуации в моей практике возникают нечасто.</div></div><br>
есть же пункт<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Часто, использую ассемблерные вставки на ЯВУ</div></div>]]></description>
        <author>miksayer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371557</guid>
        <pubDate>Fri, 18 Sep 2009 20:24:07 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371557</link>
        <description><![CDATA[Paranormal_Attack: Я по большей части занимаюсь вирусописательством на Ассемблере ) оч удобно ) но.. не будем о плохом хДД]]></description>
        <author>Paranormal_Attack</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371552</guid>
        <pubDate>Fri, 18 Sep 2009 20:20:14 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371552</link>
        <description><![CDATA[Pourtous: Странная формулировка пунктов.<br>Я вот, например, использую для вставок  либо там, где это сильно удобней, либо там, где надо заточить mmx/sse. Но такие ситуации в моей практике возникают нечасто.]]></description>
        <author>Pourtous</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371514</guid>
        <pubDate>Fri, 18 Sep 2009 19:48:57 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371514</link>
        <description><![CDATA[Павел Калугин: Никогда. Быстродействие - задача фирмы Intel&#33;  :D  :D  :D  :tong:  :lool:]]></description>
        <author>Павел Калугин</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371472</guid>
        <pubDate>Fri, 18 Sep 2009 19:19:55 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2371472</link>
        <description><![CDATA[Paranormal_Attack: Использую Ассемблер как правило всегда ) кстате ( лично моё имхо) самый лучший язык для написания червей и вирусов =) Так что господа.. безусловно учите Ассемблер... если не асм то С ( НЕ С++&#33;) <br><br>никаких basic,pascal, и другого визуального барахла&#33; Рисовать формочки - это НЕ программирование&#33; Да безусловно, сначала будет трудно, но зато потом всё окупиться сполна]]></description>
        <author>Paranormal_Attack</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2269788</guid>
        <pubDate>Tue, 19 May 2009 17:54:16 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2269788</link>
        <description><![CDATA[Upi: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>И зачем драйверу навороты плюсов? Зачем ему классы, или те же шаблоны?</div></div><br>
<br>
Ну если это драйвер железки, то наверное не зачем, а, например, драйверу tcpip.sys они бы понадобились, если смотреть по его исходным кодам.<br>
Весь стек можно было бы ровно переписать на классах, по-моему было бы куда нагляднее и удобнее.]]></description>
        <author>Upi</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2123197</guid>
        <pubDate>Sat, 22 Nov 2008 20:44:00 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2123197</link>
        <description><![CDATA[Боинг749: Наверное....Решение вопроса о том юзать или нет ассемблер зависит от целей, которые поставил себе чел и задач, которые он решает. Я так думаю.<br><br>Если чел решает не реал-таймовские задачи по сложной обработке инфы (например пишет какую-нить БД или прогу мат. моделирования), то разумней использовать ЯВУ. <br><br>А если нужно управлять железом и выжать по максимуму всё возможное из железа, то АСМ форевор.]]></description>
        <author>Боинг749</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2050993</guid>
        <pubDate>Thu, 21 Aug 2008 10:08:26 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2050993</link>
        <description><![CDATA[rdtsc: Как часто - если захочу чтото написать дома - то тока на асме(хотя на работе на си пишу)<br>Где - только дома в основном Хотя и бывало на работе - но это редко<br>Асм мое хобби и основное увлечение с 19 лет пишу на нем, те уже около 7ми лет)<br>Щас в основном поддерживаю свой мега троян на 4000 асм строк - получаю 10ки логов каждый день (пароли от почты и тд) - вобщем очень прикольно.<br>Также директх на нем писал <br>А вообще асемблер для меня - чисто зрительное  удоволсьтвие помимо особого образа мышления когда на нем пишешь (похоже на ткание ковра) - это конечно отдаляет от структурного програмирования - но ничто не мешает писать на нем и структурно -дело вкуса Все таки гибкий инструмент]]></description>
        <author>rdtsc</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031844</guid>
        <pubDate>Fri, 01 Aug 2008 11:13:03 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031844</link>
        <description><![CDATA[Qraizer: Ничего подобного. Не надо пытаться <span class='tag-u'>придумывать</span> применения тем или иным языковым или библиотечным конструкциям. Применительно к драйверам в частности. Надо просто проектировать, и языковые или библиотечные конструкции сами появятся (в драйвере в частности) в требуемой комбинации и количестве.<br>
Мой коллега - <strong class='tag-b'>AndNot</strong>, ты должен помнить, о чём это я тут  ;) - писал драйвер, который обслуживал несколько PCI устройств в произвольном их количестве каждого. Как тут можно легко обойтись без классов и полиморфизма, если каждый функционал у него (а ранее у меня) был суть производный класс от базового полиморфного интерфейса? Можно на (как я) Сях, но он выбрал плюсы. И контейнеры были - обычно векторы, чтобы за RAIIтить динамическую память (мне пришлось вручную следить за утечками), но и строки тоже встречались - и потоки, шаблонные естественно - форматирующие в памяти с собственным аллокатором, построенном не на malloc()/free() или new/delete, а на кернельных функциях. Использовались для получения строк для записи в журналы (у меня не использовались, бо было для Win9х) - совершенно некритичные с точки зрения производительности операции. И ничего так, дровина на два устройства получилась (не само собой, конечно, некоторое количество буковок в makefile пришлось добавлять) ~120Кб, из них ~80 - потоки и контейнеры, так что каждое новое устройство добавить - выливалось в ~20Кб, весьма скромно ИМХО.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031395</guid>
        <pubDate>Fri, 01 Aug 2008 03:13:54 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031395</link>
        <description><![CDATA[AndNot: И зачем драйверу навороты плюсов? Зачем ему классы, или те же шаблоны? Зачем драйверу перенаправление потоков ввода/вывода? Дань моде? Так это ведет только к одному - к прожорливости. А расплачиваться то юзер будет.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031357</guid>
        <pubDate>Thu, 31 Jul 2008 23:37:16 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031357</link>
        <description><![CDATA[HardRock: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028771'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T16:54:56+00:00">29.07.08, 16:54</time></span><div class='quote '>Насчет Си согласен  Просто я не понимаю тех, кто пытается впихнуть плюсы везде где не нужно</div></div><br>
Если ты имешь ввиду иенно плюсовые навороты, то пожалуй +1 ;) Но если брать С именно как С (по синтаксису и функционалу), то ИМХО плюсы поудобней будут. Да и &quot;современней&quot; в любом случае.]]></description>
        <author>HardRock</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031227</guid>
        <pubDate>Thu, 31 Jul 2008 19:09:10 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2031227</link>
        <description><![CDATA[Доктор ТуамОсес2: Пишу почти всегда только на ассемблере]]></description>
        <author>Доктор ТуамОсес2</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2030773</guid>
        <pubDate>Thu, 31 Jul 2008 11:41:08 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2030773</link>
        <description><![CDATA[Qraizer: <strong class='tag-b'>P.O.D</strong>, тут где-то это уже было. Проще говоря, компилятор сам это делать умеет, только не каждый и только если специально разрешить. Но получается не очень. Сам посуди: для того, чтобы преобразовать простую обработку данных, записанную у тебя в программе обычными конструкциями, в стиль SIMD, требуется его для начала реверсить; какой же интеллект следует вложить в оптимизатор, чтобы он мог это делать эффективно? Обычно предлагают в подобных случаях компилятору помогать - вводят специальные типы данных и для специальных случаев intrinsic функции. У Intel Compiler, к примеру, во скока всего: dvec.h, emmintrin.h, fvec.h, ivec.h, mmintrin.h, pmmintrin.h, sse2mmx.h, tmmintrin.h, xmm_func.h, xmmintrin.h.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2030140</guid>
        <pubDate>Wed, 30 Jul 2008 19:34:08 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2030140</link>
        <description><![CDATA[P.O.D: Писал на асме MMX,SSE оптимизации, ибо не видел, что бы компилятор сам такое делал.]]></description>
        <author>P.O.D</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029844</guid>
        <pubDate>Wed, 30 Jul 2008 15:33:56 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029844</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2029464'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-07-30T10:12:56+00:00">30.07.08, 10:12</time></span><div class='quote '>К слову сказать это даже не средства Си, а &quot;самопальные&quot; расширения отдельных компиляторов  Причем при переносе сорсов под разные компиляторы именно на in(out)port() и возникали проблемы, поскольку не во всех компиляторах эти функции совпадают.</div></div><br>
В частности поэтому эти функции присутствуют в kernelAPI. Только называются иначе, чтоб не путались.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029464</guid>
        <pubDate>Wed, 30 Jul 2008 10:12:56 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029464</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2029182'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-07-30T07:34:01+00:00">30.07.08, 07:34</time></span><div class='quote '>Это Pascal :) В Си - inportb()/outportb() и т.д.</div></div>К слову сказать это даже не средства Си, а &quot;самопальные&quot; расширения отдельных компиляторов :) Причем при переносе сорсов под разные компиляторы именно на in(out)port() и возникали проблемы, поскольку не во всех компиляторах эти функции совпадают.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028695'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pavia &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T15:37:01+00:00">29.07.08, 15:37</time></span><div class='quote '>Железо такое сложное стало.</div></div>Вспомнился случай. Одно предприятие купило хитрый девайс, но в целях экономии не купили доп. плату, для его подключения к компьютеру и софт к ней, то есть съекономили порядка 50000 рубликов (точно уже не помню). После некоторых ухищрений девайс подключили к COM-порту. Но вот загвоздка, ихи ITешники попробовали написать распознание поступающих пакетов, но обломали зубки, поскольку сами пакеты имели различную структуру, длину и вообще не имели каких либо признаков начала и конца, да и приходили в самое неожиданное время, причем могли приходить даже сериями :) Код вышел громоздкий и временами глючил, временами пропускал пакеты, а то и серии, пока не смог распознать начало какого либо пакета. Да и читабельность у него, из-за множества IF и CASE была мягко говоря на нуле. Тогда и попросили меня, по старой дружбе. Идею использовать Си отбросил сразу же, поскольку очень быстро начинал путаться в коде, из-за огромного количества различных вариантов действий. Попытался свести логику программы в таблицу, но нужна была очень заумная таблица, с элементами разной длины и структуры, к тому же нужно было как то задавать в ней переходы, в зависимости от условий. На Си получилось нечто такое страшное, что захотелось застрелиться. А вот на асме все пошло настолько гладко, что на все ушло половина дня. Причем кода вышло - кот наплакал :) И вот уже несколько лет нет ни одного сбоя или рассинхронизации.<br>
Ну нет таких языков, которые приспособлены для всего, Си в том числе. И когда начинают утверждать, что на Си писать драйвера легко и просто, то поневоле хочется поправить, что задачи бывают разные. И порой встречаются такие, которые на асме решаются быстрее и намного проще, нежели на чем либо другом. Примеров знаю массу.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029182</guid>
        <pubDate>Wed, 30 Jul 2008 07:34:01 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2029182</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028695'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pavia &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T15:37:01+00:00">29.07.08, 15:37</time></span><div class='quote '>У него есть макро средства классы и прочее. Что позволяет работать с портами в виде port[]</div></div><br>
Это Pascal :) В Си - inportb()/outportb() и т.д.<br>
Для Memory Mapped просто обращение через указатели.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028695'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Pavia &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T15:37:01+00:00">29.07.08, 15:37</time></span><div class='quote '>Я незнаю как вы на ассемблере будете писать драйвера. Железо такое сложное стало. Это не однна две команды как было раньше. Это одна две функции которые нужно вызвать чтобы сделать элементарное действие.</div></div><br>
Лёгко ;) Ничего настолько сложного там нет.]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028771</guid>
        <pubDate>Tue, 29 Jul 2008 16:54:56 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028771</link>
        <description><![CDATA[AndNot: Насчет Си согласен :D Просто я не понимаю тех, кто пытается впихнуть плюсы везде где не нужно ;) <br>А железо и раньше было разным, как простым, так и сложным. Но ведь писали и на асме. Да и сишный код зачастую получается сложнее, нежели асмовский. Сравни те же драйвера для PS/2 мышей под винду. Сишный код выглядит просто ужасно и раздут по самое нехочу. На ассемблере тот же код выглядит более наглядным и понятным.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028695</guid>
        <pubDate>Tue, 29 Jul 2008 15:37:01 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028695</link>
        <description><![CDATA[Pavia: <strong class='tag-b'>AndNot</strong><br>
Помойму оптимальнее писать драйвера на Си. У него есть макро средства классы и прочее. Что позволяет работать с портами в виде port[]<br>
Или Write()/Read(). Порты отоброженные в память тоже используются как массивы. <br>
Я незнаю как вы на ассемблере будете писать драйвера. Железо такое сложное стало. Это не однна две команды как было раньше. Это одна две функции которые нужно вызвать чтобы сделать элементарное действие.]]></description>
        <author>Pavia</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028689</guid>
        <pubDate>Tue, 29 Jul 2008 15:28:51 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028689</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028410'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>KillerXX7 &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T12:05:59+00:00">29.07.08, 12:05</time></span><div class='quote '>В то же время писать драйвер на ассемблере - нецелсообразно, на C++ - оптимально.</div></div>Уверен? По твоему оптимально писать драйвер для работы с железом на языке, у которого отсутствуют средства для работы с этим самым железом??????]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028641</guid>
        <pubDate>Tue, 29 Jul 2008 14:38:26 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028641</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=2028410'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>KillerXX7 &#064; <time class="tag-quote__quoted-time" datetime="2008-07-29T12:05:59+00:00">29.07.08, 12:05</time></span><div class='quote '>В то же время писать драйвер на ассемблере - нецелсообразно, на C++ - оптимально.</div></div><br>
Вообще драйвера лучше на чистом Си писать, хотя можно и на плюсах.]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028410</guid>
        <pubDate>Tue, 29 Jul 2008 12:05:59 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2028410</link>
        <description><![CDATA[HardRock: Зная различные языки программирования, появляется &quot;установка&quot; применять оптимальный для данной задачи язык.<br>Без фанатизма и без &quot;религиозных&quot; взглядов.<br><br>Так например считаю писать GUI &quot;офисное&quot; приложение для работы с БД на ассемблере - изврат, на С++ - нецелесообразно, зато на VB / VB.Net - оптимально.<br>В то же время писать драйвер на ассемблере - нецелсообразно, на C++ - оптимально.<br>Писать прошивку для AVRки на C++ - нецелесообразно, на ассемблере - оптимально (только для слабых AVRок)<br><br>Что касается использования ассемблера для оптимизации... лично по моему мнению современные компиляторы довольно хорошо справляются с этой задачей, а соврменное железо хорошо справляется с тем что не доделывают компиляторы.<br>Если нужна хардкорная оптимизация - то можно и руками.<br><br>ИМХО ассеблер знать обязательно&#33; Только зная ассемблер можно грамотно писать программы, в том числе на ЯВУ.<br>А чаще всего используется ассемблер только для реверсинга.]]></description>
        <author>HardRock</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2027295</guid>
        <pubDate>Mon, 28 Jul 2008 13:13:00 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2027295</link>
        <description><![CDATA[AndNot: <strong class='tag-b'>Barbosman</strong> верно сказал, но старье применяется еще шире. И объяснение этому простое, оно доступно по цене и производительность для многих задач вполне приемлема.<br>
А 8086 видел в продаже не более года назад, в магазине радиоэлектроники :) Выходит, что выпускают.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2026966</guid>
        <pubDate>Mon, 28 Jul 2008 08:44:38 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2026966</link>
        <description><![CDATA[Barbosman: Ну процессоры аля пентиум 166 выпускают и до сих пор, правда не в таких количествах. Одно из применений - встраиваемые технологии. К примеру, коммутационное поле большой ЭАТС основывается на нескольких слабеньких пнях, не обязательно, но на практике наблюдал - КС Siemens EWSD.<br>Хотя в последнее время заметил, что в области автоматизации все больше применяются ARMы - архитектура проще, нету пережитков обратной совместимости ну и т.д.]]></description>
        <author>Barbosman</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2025598</guid>
        <pubDate>Sat, 26 Jul 2008 07:31:22 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2025598</link>
        <description><![CDATA[Besha: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914992'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T16:28:56+00:00">30.03.08, 16:28</time></span><div class='quote '>Те устройства, на 8086, пошли в серию</div></div><br>
Всмысле их снова штампуют или я чето не понял :unsure:]]></description>
        <author>Besha</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2025530</guid>
        <pubDate>Sat, 26 Jul 2008 03:13:35 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=2025530</link>
        <description><![CDATA[schooler: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916238'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>schooler &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T22:47:42+00:00">31.03.08, 22:47</time></span><div class='quote '>Чем больше мы будем работать на ЯВУ, тем сильнее мы привязываемся к определенной ОС, в особенности Windows (см опрос &quot;Ваше мнение о монополиях&quot;).</div></div><br>
Ну ладно, согласен, немного погорячился. Но все-таки ЯВУ не позволяют написать что-либо с нуля, а асм позволяет. Я имел ввиду настоящее низкоуровневое программирование без использования функций ОС. ЯВУ сегодня все больше и больше привязаны к ОС или библиотеке типа DirectX или .NET.]]></description>
        <author>schooler</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1959058</guid>
        <pubDate>Sat, 17 May 2008 18:14:38 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1959058</link>
        <description><![CDATA[wereber: только когда патчу какой нибудь бинарный файл :whistle:]]></description>
        <author>wereber</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1935498</guid>
        <pubDate>Mon, 21 Apr 2008 21:19:21 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1935498</link>
        <description><![CDATA[Sparky: Я - любитель, пишу на асме и С++. Честно говоря больше нравиться на асме  :D Но когда читаю объявления о наборе программистов чаще всего приглашают программистов на С++, C# и Java  :( Хотя преподаватели говорят что сейчас требуются программисты на асме, но что-то я не встречал таких объявлений, а жаль&#33;  :(  Нет, и всё же, как не крути, асм не исчезнет&#33; И со &quot;скоростью&quot; асма не поспоришь  ;) И к тому же, я думаю, что знание асма, это большой &quot;+&quot;  :lol: Наверно уж работодатели это приветствуют&#33;  :rolleyes:]]></description>
        <author>Sparky</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1917091</guid>
        <pubDate>Tue, 01 Apr 2008 14:56:38 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1917091</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Ну уж покажи нам грешным, как нормальные компиляторы юзают MMX  Насколько эффективно они юзают SSE? Не так давно замеры проводили. При желании можно без напрягов обставить любой компилятор Cи.</div></div>Что значит, <em class='tag-i'>грешным</em>? Ты что, рассчитываешь, что компилятор адекватно выполнит интерполяцию твоей цели, базируясь на исходниках, и сам изменит алгоритм для лучшего соответствия SIMD-модели? Посмотри в хидеры к Intel Compiler, чтобы приблизительно иметь представление о что, как програмить на ЯВУ сразу в SIMD-модели. Когда ты это делаешь ассемблером, тебя же это не удивляет. Хотя cl и icl/icc уже умеют делать выводы на основе результатов разворачивания циклов, но это у них получается не очень, так что не удивительно, что их несложно обставить, если ты написал алгоритм в классическом стиле, подразумевая SIMD. Будь всё-таки объективен.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Почти все задачи, с вещественной арифметикой, предпочтительнее выполнять на FPU, он еще быстрее SSE</div></div>А ты сравнивал? FSIN например, работает медленее, чем intelовская sin(), а она в свою очередь юзает невекторные SSE2 инструкции. У меня получились отношения (std::sin / asm&#39;s FSIN / Intel&#39;s sin) примерно такие: 129 / 90 / 42. А выигрыш получается хотя бы за счёт бОльших возможностей оптимизации из-за нестековой архитектуры. Желание же Intel отказаться от FPU вообще вполне объяснимо - бакэнд оптимизация для FPU нетривиальна и сильно отличается по своим принципам. Ну а то, что это бесполезная надежда, я и не спорю.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Непонял, при чем здесь обработчик исключений и дос-дрова?</div></div>Не при чём. А с чего ты взял, что они тут должны иметь друг к другу какое-то отношение? При чём были возможности ЯВУ против возможностей ассемблера. Оказалось, что они адекватны. Исходник привести к сожалению не могу, потерялся лет семь назад, но могу сказать, что писалось на Borland C++ 3.1, сорец пестрил #pragma codeseg, отключались библиотеки (правда, некоторые обджики вырезались из либ и подлинковывались явно), юзалась meduim модель и собиралось это всё не в IDE, а make-ом явно указанными командными строчками. <strong class='tag-b'>cppasm</strong>, это и тебе тоже ответ. Не скажу, что это было удобнее, чем ассеблером, но писалось это на спор и тем было доказано, что это возможно.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Встречал подобное. Но использовать никогда не стремился, были лучшие аналоги, на асме  И работают стабильнее и ресурсов меньше кушают. Вот это и есть наглядный пример, где не стоит использовать ЯВУ  </div></div>Тебе прислать, что получилось? 8-) Этот сорец у меня остался. Сам сделаешь выводы на предмет скорости, ресурсоёмкости и производительности. TPUшка 8,5Кб, минимальный размер SB буфера 1Кб. Было написано за пару дней. Даже при компиляции под DPMI работало на ура, на что понадобилось ещё с полчаса. Зато даже при компиляции под Windows Target прекрасно работало как easyWind, если предварительно в винде прибить дрова SB, чтоб не мешали юзать DMA и IRQ. Правда, под DMPI и Win буфер в 1Кб был уже маловат. Давай посмотрим, как ты всё это сделаешь на ассемблере, и насколько это в целом будет выгоднее Паскаля.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Еще раз повторяю - вин-дрова не являются низким уровнем. Вот когда ты делаешь: ...</div></div>Я б на твоём месте этот фрагмент бы не писал... Во-первых, на предмет заюзывания архитектурных особенностей, я вроде бы высказывался, или ты читаешь &quot;по-диагонали&quot;? На предмет всего остального, что в цитате скрыто под ..., то в твоём понимании термина &quot;низкий уровень&quot; двайверы вообще отсутствуют. Так и писали в DOS, у которой фактически единственное, что было представлено как OS API - это доступ к файловой системе. Или ты считаешь нормальным сегодня использовать устаревшие технологии проектирования вычислительных систем? Во всех остальных случаях игнорировать kernelAPI - смириться с перманентным апдэйтом своего шедевра чуть ли не с каждым сервис-паком, а то и просто заплаткой. Не спорю, Ягуары очень хорошие машины, только дорогие. Самое то, чтоб повыпендриваться. Ну и наконец собственно ассемблерный фрагмент, во-первых, ничего не доказывает, потому что кроме первой инструкции всё это перекладывается на любой язык, даже Бейсик, во-вторых написан с нарушением принципов проектирования надёжного системного кода.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Но я имел в виду не липовую многозадачность, а аппаратную. </div></div>Переключение по прерыванию от таймера есть липовая многозадачность? :o Не смеши. Если ты имел в виду многозадачность на уровне task state segments, то вынужден разочаровать: во-первых, они многими ОСами и не используются; во-вторых, кроме начального пинка в лице LTR где-то сразу после перехода в PM, всё остальное на каких-нибудь Сях пишется куда как проще - сплошные структуры, битовые поля и адресация через массивы дескрипторов и страниц.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Прикол в другом. <span class="tag-color tag-color-named" data-value="red" style="color: red">Обе игрухи использовали FPU, но в Quake его юзал компилятор, а в Чесме вся работа с ним была написана на асме</span>. Отсюда и такие результаты - игруха на Паскале легко сделала игруху на Си  Хотя общепринято мнение, что на Паскале серьезных игр не пишут.</div></div>Твой тезис противоречит заявлению Кармака. Уж извини, но ему я скорее поверю. А остальное - ты не со мной споришь, я обратного не утверждал. Только говорить о том, что игруха написана на Паскале, согласись, в данном случае значит передёргивать.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>Квака вышла задолго до появления MMX. А чуть не загнулась эта технология по другим причинам - отсутствие программистов, знающих ассемблер, поскольку компиляторы ЯВУ не умели юзать эту технологию.</div></div>Как раз из-за того, что задолго, чуть и не убила. MMX - это целочисленный SIMD. Intel на то и рассчитывала, что это станет хорошим подспорьем, так как MMX превращает её процессоры в эдакие DSP. Вот эта технология наконец-то выходит, ждали её не один год (кстати, а чего там было столько времени делать?), а программисты вдруг выясняют, что для float-ов она не предназначена. И кому на фиг она нужна, чтобы её изучать, если губы уже раскатаны под мощные 3D алгоритмы, где без плаваюшей точки уже туговато, это не спрайтиками экран текстурировать. Так что программистов хватало, не хватало желания. Плюс, знать ассемблер одно, а научиться эффективно пользоваться SIMD - это другое. А вот 3DNow&#33; вызвал нужный резонанс, потому как float.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916065'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T18:22:38+00:00">31.03.08, 18:22</time></span><div class='quote '>...Советую скачать да посмотреть. Найдешь на любом сайте, со старыми играми.</div></div>Скока весит? Вполне возможно, что и скачаю. В своё время не думал, что Duke Nukem увлечёт, но начал играть, вполне себе ничего оказалось. Не эффекты главное, хотя куда же без них, конечно, а антураж. Дум 3 тому подтвеждение.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916238'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>schooler &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T22:47:42+00:00">31.03.08, 22:47</time></span><div class='quote '>А AndNot прав. Асм дает гораздо больше возможностей... <span class="tag-color tag-color-named" data-value="red" style="color: red">Чем больше мы будем работать на ЯВУ, тем сильнее мы привязываемся к определенной ОС... </span></div></div>Я и не говорю, что <strong class='tag-b'>AndNot</strong> не прав. Он просто черезчур консервативен, а кроме того, утверждает, я не прав я &lt;_&lt; . У асма больше возможностей? Безусловно. А у ЯВУ меньше, да? А ты знаешь, каковы возможности твоей реализации С++, чтобы утверждать, что конкретно она тебе позволит сделать, а что не сможет? Возможности Borland C++ 3.1 и Borland Pascal 7.0 я обрисовал.<br>
Последняя фраза меня просто убила. Весь мир считает, что ЯВУ во-вторую очередь после удобства использования предназначены для того, чтобы такой завязки не было, а тут нА тебе, оказывается не завязан как раз ассемблер. :D  Предалагаю это открытие опубликовать и запатентовать.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916733'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-04-01T11:11:57+00:00">01.04.08, 11:11</time></span><div class='quote '>И что ты писал для посылки EOI допустим?<br>
port[&#036;20]:=&#036;20; или outportb(0x20,0x20);<br>
Это по сути и есть использование ассемблера, только завёрнутого в функцию.<br>
Это ведь не стандартизированные средства, а заточенные под конкретную ОС.<br>
Под Windows допустим ты даже в драйвере не напишеш outportb() - потому что её просто нет.</div></div>Ну и что, что закамуфлированный? Во-первых, если так рассуждать, то любое использование ЯВУ есть закамуфлированное использование ассеблера, а ассемблер - закамуфлированный объектный код. Во-вторых, ничего подобного, это стандартные массивы, если заглянуть в хелп. И как часть языка, будет работать везде, где язык позволяет. И под Виндой тоже. И работало, кстати.<br>
&quot;стандартизированные средства&quot; - умоляю. Это что же получается, я утверждаю, что некая железячная задача может быть решена без ассемблера, а меня попрекают, мол, это будет непереносимо? Нелогично. Задача программировать SB сама по себе является слабопереносимой, потому как в такой формулировке завязана на железо, что как раз и представляет собой её ценность в диалоге &quot;асм против ЯВУ&quot;. А под Windows в драйвере я напишу WRITE_PORT_UCHAR(), и будет мне счастье. Причём работать будет даже на Alpha-е и MIPS, которые не имеют отдельного адресного пространства ввода/вывода, как x86. Как это будет работать - не моя проблема, а Винды, это она такую гарантию даёт.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916733'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-04-01T11:11:57+00:00">01.04.08, 11:11</time></span><div class='quote '>Опять же - это завуалированное использование ассемблера.<br>
Возьми любой другой компилятор (не Borland) и попробуй собери.</div></div>Опять же нет. Это возможность предоставляется реализацией, и я её использовал. Только и всего. Непереносимо? А юзать ассемблер переносимей? Препод сказал, юзайте BC3.1. Я тут причём? Кстати, сейчас я уже вижу как эту контрольную можно было сделать без непереносимостей, кроме некоторых ограничений на момент переключения. Тогда не видел.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916733'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-04-01T11:11:57+00:00">01.04.08, 11:11</time></span><div class='quote '>И вот с последствиями этого я сейчас борюсь <br>
Пишу эмулятор SSE, так как CPU у меня AMD, и 3DNow&#33; есть, а SSE нету.<br>
А в одной программе Adobe используется SSE, причём даже не проверяется его наличие. И конечно программа падает.</div></div>А виноват Intel, что ли? :D  Не пользуйся результатами криворуких разработчиков, я вот не пользуюсь. Вообще же, скажешь Intel Compiler-у, мол, хочу SSE, он и заюзает, скажешь, хочу, но мало ли..., он сделает два варианта и поветвится. Куда придётся ветвиться, программа определяет при своём старте.А может ты просто не почитал минимальные системные требования? ;) <br>
Следующие примеры из той же оперы. Компилятору позволили, он и заюзал, где посчитал выгодным. Почему выгодным - приведи больше контекста, постараюсь ответить. А можешь посмотреть и отчёты Intel-а. Если его попросить, он столько наотчитывается при компиляции - с неделю будешь изучать и если осилишь, станешь профи в бак-энд оптимизации под её процессоры.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916907</guid>
        <pubDate>Tue, 01 Apr 2008 13:00:33 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916907</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Не стоит спорить с оптимизатором без необходимости</div></div><br>
Во-во :D]]></description>
        <author>leo</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916733</guid>
        <pubDate>Tue, 01 Apr 2008 11:11:57 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916733</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Я как-то поспорил на много пива, что смогу написать DOSовый драйвер устройства только на C++ без капли ассемблера. Выиграл.</div></div><br>
А как ты заголовок драйвера сделал? (тот из которых список формируется).<br>
Взял какую нибудь либу или как? В DOS&#39;овский .sys ни один линкер собирать не умеет.<br>
А набитый кем-то заголовок и скомпилированный в obj который потом линкуется с hll кодом - это не честно.<br>
Да, тело драйвера можно написать допустим на Си, но заголовок ты не сформируеш.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>На &quot;безасмовом&quot; Паскале писал DSP-библиотеку для записи/проигрывания через SB в фоне, включая SB16. И IRQ там были, и DMA, как же без них...</div></div><br>
Это мягко говоря не совсем правда. И что ты писал для посылки EOI допустим?<br>
port[&#036;20]:=&#036;20; или outportb(0x20,0x20);<br>
Это по сути и есть использование ассемблера, только завёрнутого в функцию.<br>
Это ведь не стандартизированные средства, а заточенные под конкретную ОС.<br>
Под Windows допустим ты даже в драйвере не напишеш outportb() - потому что её просто нет.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>что делалось единственной Борланд С++ной строкой _BP = task[targetsIndex].basePtr; внутри обработчика IRQ0</div></div><br>
Опять же - это завуалированное использование ассемблера.<br>
Возьми любой другой компилятор (не Borland) и попробуй собери.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>...в основном как раз из-за архитектурных недостатков FPU. Но ненужные &quot;загрузки/выгрузки&quot; и &quot;многочисленные обмены регистров fxch&quot; не есть дезоптимизация.</div></div><br>
Нормальная у fpu архитектура, просто компиляторы не заточены использовать все восемь регистров.<br>
Я вложенности fpu стека выше 3-4 ниразу не видел.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Не правда. Нормальные копиляторы уже давно это делают, а Intel, так та вообще хочет забыть нафиг FPU как страшный сон и заставить всех юзать исключительно SSE2 и выше...</div></div><br>
И вот с последствиями этого я сейчас борюсь :)<br>
Пишу эмулятор SSE, так как CPU у меня AMD, и 3DNow&#33; есть, а SSE нету.<br>
А в одной программе Adobe используется SSE, причём даже не проверяется его наличие. И конечно программа падает.<br>
А всё потому что люди собрали с оптимизацией для P4, по-моему intel c compiler.<br>
При этом 90% SSE кода выглядит так:<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">movss xmm0,[mem1]</div><div class="code_line">movss [mem2],xmm0</div></ol></div></div></div></div><br>
Спору нет, без SSE тут никак нельзя.<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">fstp &nbsp;[var1]</div><div class="code_line">movss xmm0,[var1]</div><div class="code_line">movss [var2],xmm0</div><div class="code_line">fld &nbsp; [var2]</div></ol></div></div></div></div>Интересно, что мешало сделать просто<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">fst &nbsp; [var1]</div><div class="code_line">fst &nbsp; [var2]</div></ol></div></div></div></div><br>
В общем компиляторы очень часто SSE суют без особой на то необходимости.<br>
Просто из-за того что это ещё дополнителных 7 регистров к которым в отличии от fpu можно обращаться напрямую.<br>
<br>
Лично я много пишу на Си, но точно так же много и на ассемблере.<br>
И те вещи которые легче писать на ассемблере, я на нём и пишу (в основном работа с оборудованием и т.д.).<br>
Но GUI к примеру писать на ассемблере я большого смысла не вижу, хотя опять же дело привычки.<br>
Если GUI на WinAPI, по разницы практически никакой.]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916238</guid>
        <pubDate>Mon, 31 Mar 2008 22:47:42 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916238</link>
        <description><![CDATA[schooler: А <strong class='tag-b'>AndNot</strong> прав. Асм дает гораздо больше возможностей. Например, если компилятор ЯВУ что-то не поддерживает (MMX, 3d-now и т.д.), то у программиста связаны руки. Здесь поможет только асм. Все эти новые модификации и интерфейсы появляются каждый год, а компиляторы под все новшества писать не успевают. (И кстати, на чем пишут компиляторы ЯВУ?). <br>
Чем больше мы будем работать на ЯВУ, тем сильнее мы привязываемся к определенной ОС, в особенности Windows (см опрос &quot;Ваше мнение о монополиях&quot;).]]></description>
        <author>schooler</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916065</guid>
        <pubDate>Mon, 31 Mar 2008 18:22:38 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916065</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Не правда. Нормальные копиляторы уже давно это делают</div></div>Ну уж покажи нам грешным, как <em class='tag-i'>нормальные</em> компиляторы юзают MMX ;) Насколько эффективно они юзают SSE? Не так давно замеры проводили. При желании можно без напрягов обставить любой компилятор Cи. <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>а Intel, так та вообще хочет забыть нафиг FPU </div></div>Хотеть не вредно, но бесполезно. Почти все задачи, с вещественной арифметикой, предпочтительнее выполнять на FPU, он еще быстрее SSE ;) И даже там, где можно применить преимущества SSE, еще не факт, что FPU окажется медленнее.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Я как-то поспорил на много пива, что смогу написать DOSовый драйвер устройства </div></div>Непонял, при чем здесь обработчик исключений и дос-дрова? :wacko: <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>На &quot;безасмовом&quot; Паскале писал DSP-библиотеку для записи/проигрывания через SB в фоне, включая SB16</div></div>Встречал подобное. Но использовать никогда не стремился, были лучшие аналоги, на асме ;) И работают стабильнее и ресурсов меньше кушают. Вот это и есть наглядный пример, где не стоит использовать ЯВУ ;) <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Ну а VxD без ассемблера через несколько лет уже никого бы не удивило.</div></div>Еще раз повторяю - вин-дрова не являются низким уровнем. Вот когда ты делаешь: <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">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;sidt &nbsp; &nbsp;idt_tab</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; edi,[idt_tab.idt_addr]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;add &nbsp; &nbsp; edi,6*8</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;; сохраняем адрес предыдущего обработчика</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;movzx &nbsp; eax,[edi].int_hi_offs</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;shl &nbsp; &nbsp; eax,16</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; ax,[edi].int_lo_offs</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [OldIntOfs],eax</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;movzx &nbsp; eax,[edi].int_sel</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [OldIntSel],ax</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;cli</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; eax,OFFSET32 NewInt06</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [edi].int_lo_offs,ax</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;shr &nbsp; &nbsp; eax,16</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [edi].int_hi_offs,ax</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; eax,cs</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [edi].int_sel,ax</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov &nbsp; &nbsp; [edi].int_attrib,8E00h</div></ol></div></div></div></div>то только тогда и начинается кодинг на низшем уровне. Т.е. когда ты осознанно отказываешься от kernel-api (некорректный термин, но ты меня понял), когда твой драйвер работает без помощи системы, когда ему вообще до фонаря, под какой системой он находится. Это и называется низкоуровневым программированием. На ЯВУ здесь не развернуться, они для этого не приспособлены. Более того, чем быстрее драйвер отдаст управление системе, тем лучше, поскольку работает он с отключенными прерываниями и не всегда их можно включить до завершения.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>была сделана исключительно на переключении стеков</div></div>Эти средства есть и в Паскале. Но я имел в виду не липовую многозадачность, а аппаратную. Здесь тебе Борланд не поможет ;) <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Насколько я помню, ID как раз Quake I выпустила как первую игру, которой действительно требовался FPU</div></div>Прикол в другом. Обе игрухи использовали FPU, но в Quake его юзал компилятор, а в Чесме вся работа с ним была написана на асме. Отсюда и такие результаты - игруха на Паскале легко сделала игруху на Си :D Хотя общепринято мнение, что на Паскале серьезных игр не пишут.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>И, показав, что без FPU игровая индустрия дальше будет всё меньше и меньше обходиться, чуть не убила этим MMX</div></div>Неужели? Квака вышла задолго до появления MMX. А чуть не загнулась эта технология по другим причинам - отсутствие программистов, знающих ассемблер, поскольку компиляторы ЯВУ не умели юзать эту технологию. Да и сейчас самостоятельно не умеют и еще меньше вырастает программистов, способных освоить эту технологию - они предпочитают уже готовенькое.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Вот только интересно, почему в таком случае не написать, что &quot;вторая написана на ассемблере с ~30% Паскальных вставок&quot;?</div></div>Дык ведь каркас то и был на паскале :D А запомнилась игруха по одной причине - она была последней, с таким количеством асма. Да и движок был превосходный. Можно было отстрелить руки, ноги, головы (прикольно было оторвать обе руки и смотреть, как монстр пытался бить тебя головой :lol: ), был реализован даже полупрозрачный дым от взрывов (и это в 8-ми битной графике&#33;), полупрозрачная вода, тени, разрушающиеся стены(где по сценарию разрешено было). В общем движок был лучшим в ДОСе, а по скорости - просто превосходный, я на Pentium 100 проходил, под видеорежимом 400x300, а на 150-м - 640x400. И это без акселератора. Ну и приятно, что этот шедевр выпустили украинские программисты :wub: Советую скачать да посмотреть. Найдешь на любом сайте, со старыми играми.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1916026'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-03-31T17:25:21+00:00">31.03.08, 17:25</time></span><div class='quote '>Я могу позволить себе сделать такое сравнение? </div></div>Сравнения никогда не бывают точными &lt;_&lt;]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916026</guid>
        <pubDate>Mon, 31 Mar 2008 17:25:21 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1916026</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>semiono &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T08:23:52+00:00">29.03.08, 08:23</time></span><div class='quote '>Но удивлён когда продвинутые программисты выбирают что-то другое...</div></div>Поверь, станешь продвинутым - будешь удивляться, вспоминая вот эту свою точку зрения. Сам такой был, знаю. После реализации DMPI-хоста, соответствущего спецификации 1.0 и навешивающегося на любой уже имеющийся, соответствующий спецификации 0.9, интересы сместились от виртуозности управления процессором в сторону виртуозности управления компилятором. Оказалось, это не менее увлекательно.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914195'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T10:31:23+00:00">29.03.08, 10:31</time></span><div class='quote '>На ЯВУ можно (и нужно&#33;) написать все то же самое, что и на ассемблере (за исключением оптимизации средствами MMX, SSE, etc.), ...</div></div>Не правда. Нормальные копиляторы уже давно это делают, а Intel, так та вообще хочет забыть нафиг FPU как страшный сон и заставить всех юзать исключительно SSE2 и выше...<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914258'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>leo &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T12:15:05+00:00">29.03.08, 12:15</time></span><div class='quote '>...ЯВУ-компиляторы неплохо оптимизируют целочисленные операции и, мягко говоря, неважно FPU. Видимо из-за сложностей работы со FPU-стеком явушные реализации грешат ненужными загрузками&#092;выгрузками промежуточных FPU-вычислений в память и многочисленными обменами регистров fxch</div></div>...в основном как раз из-за архитектурных недостатков FPU. Но ненужные &quot;загрузки/выгрузки&quot; и &quot;многочисленные обмены регистров fxch&quot; не есть дезоптимизация. Обмены, например, как раз и позволяют обойти архитектурное неудобство FPU, связанное с его стек-ориентированностью и позволяет спараллелить исполнение нескольких FPU-инструкций, убрав зависимость по ST(0), лишь бы исполнительных блоков у процессора хватило. &quot;Ненужные&quot; же операции с памятью могут выполнять роль SSEёвых PREFETCH-ей. Не стоит спорить с оптимизатором без необходимости.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914361'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T15:38:37+00:00">29.03.08, 15:38</time></span><div class='quote '>Вспомнить можно много чего, например мониторинг производительности, через регистры MSR и CESR  Или возьми такую область, как дебаггеры. Только на асме возможно легко и просто кодить работу с отладочными регистрами. <span class="tag-color tag-color-named" data-value="red" style="color: red">Только на асме можно сделать обработчики исключений процессора. Только на асме можно реализовать нормальное переключение задач. Да много чего невозможно на ЯВУ</span>...</div></div>Я как-то поспорил на много пива, что смогу написать DOSовый драйвер устройства только на C++ без капли ассемблера. Выиграл. Там много чего было, проще сказать, чего аппаратного я не делал, не прибегая к ассемблеру. На &quot;безасмовом&quot; Паскале писал DSP-библиотеку для записи/проигрывания через SB в фоне, включая SB16. И IRQ там были, и DMA, как же без них... Ну а VxD без ассемблера через несколько лет уже никого бы не удивило.<br>
Вот чего действительно нельзя сделать без ассемблера, так это завязанного на архитектурные детали процессора, которым компилятор просто не научен. В частности это то, что я не покрасил. Многозадачность, например, как семестрования констрольная была сделана исключительно на переключении стеков, а вместе с ними и сохранённых контекстов CPU, что делалось единственной Борланд С++ной строкой _BP = task[targetsIndex].basePtr; внутри обработчика IRQ0, естественно написанного тоже без ассемблера. Препод тоже долго не мог поверить, что ассемблер для этой задачи не нужен. Когда убедился, учиться остальные полтора года у него стало легче. :P Так что, учите матчасть, то бишь возможности ваших компиляторов: никогда не знаешь, в чём и когда это может помочь. Знатоков ассеблера хватает, а работодателю зачастую не они нужны, а профи-виртуозы, способные выжать максимум из того инструмента, что есть, и знание ассемблера - всего лишь одна и не самая важная составляющая.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914657'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T01:25:19+00:00">30.03.08, 01:25</time></span><div class='quote '>Вспомнилось две игрухи, первая на Си, вторая на Паскале. Обе - шутеры, почти одинаковы (во втором спецэффекты более продвинутые). Но вторая на 70% состояла из асма. В результате - вторая работала более гладко, нежели первая, даже при вдвое большем разрешении экрана и большем количестве спецэффектов. Первая была - знаменитая Quake, а вот вторая - Chasm: Shadow The Rift  А казалось бы, подумаешь ерунда, какой то там FPU. </div></div>Насколько я помню, ID как раз Quake I выпустила как первую игру, которой действительно требовался FPU. И, показав, что без FPU игровая индустрия дальше будет всё меньше и меньше обходиться, чуть не убила этим MMX. А AMD со своим 3DNow&#33; резво поднялась в рейтингах. А казалось бы - всего-то одна-единственная операция деления, тщательно оптимизированная по тактам под Pentium, чтобы исполняться максимально параллельно с CPU. Не знаю, насколько кривили душой Кармаки, но по их заявлениям перспективную коррекцию текстур с шагом хотя бы в 16 пикселов нереально реализовать без деления, которое можно было сделать целочисленным, т.е. в формате с фиксированной точкой, но хоть FPU и чуть медленее, зато параллелится с CPU. И кстати, FPS был выше даже на менеечастотных Pentium по сравнению с более высокочастотными AMD и Cyrrus. Сам видел - Pentium 120 делал почти вдвое CyrrusLogic 166 - 24 vs 14 (&#33;) Потому как Intel очень хорошо поработала над тактами FPU у Pentium 90 и выше.<br>
Что касается Chasm - не знаю; не видел, не играл, не слышал комментариев и откликов. Одно могу сказать: оптимизаторы в то время у компиляторов были не весть бог какие, поэтому в то время многие могли прилично поднять производительность своих приложений, применяя много ассемблера. Вот только интересно, почему в таком случае не написать, что &quot;вторая написана на ассемблере с ~30% Паскальных вставок&quot;? :D И прокоментить временем и стоимостью её разработки. Прям здесь и сейчас могу сказать, что свои продукты ID выпускает для множества платформ, включая приставки, так что широкое применение ассемблера в её продуктах есть непозволительная роскошь.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914728'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T08:44:49+00:00">30.03.08, 08:44</time></span><div class='quote '>Вот, боюсь, большинство ассемблеровщиков и могут привести как аргумент подобные извращения. На практике часто встречаются такие задачи - минимальный по размеру ехе-шник? Очень уж это похоже на исскуство ради исскуства.</div></div>Я могу позволить себе сделать такое сравнение? Есть мастер, у которого на вооружении цифровой анализатор, паяльная станция с вытяжкой, микроскопом и манипуляторами, анлим для качания мануалов и серфигну по форумам итп. Рядом с ним сидит ещё один мастер, работающий паяльником, простым оловом и канифолью, пробниками с питанием от батареек, сапожным ножиком для зачистки проводов и проводочков, целой библиотекой печатной и ксерной документации и тоже тп. При этом делают одинаковую работу. Вариантов три. Либо первый - зарабатывает больше, потому что работает быстрее, и вызывает у клиентов большее доверие. Либо без разницы, потому что услуги второго оцениваются выше. Либо они - одна команда и весь заработок делят поровну, просто каждый занимается своим делом, и каждый обращается к услугам другого по мере необходимости.<br>
Вот ещё одно сравнение: есть люди, которые могут самостоятельно собрать автомобиль из отдельных деталей, а то и построить самолёт. Они достойны уважения и признания, и они их находят. Но в серию их шедевры не идут, вместо этого их идеи покупают компании, щедро за это вознаграждая. Вот только потом о них никто как правило не знает, а знают ту компанию, которая запустила серию. В общем, я за реализм и против фанатизма.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914992</guid>
        <pubDate>Sun, 30 Mar 2008 16:28:56 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914992</link>
        <description><![CDATA[AndNot: Ты не понял :) Те устройства, на 8086, пошли в серию, так что экономия очень значительна ;) Какие, говорить не буду, но одно из них используется повсеместно , хотя я был одним из многих, но все равно приятно осознавать, что жизнь прожил не зря ;)]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914832</guid>
        <pubDate>Sun, 30 Mar 2008 11:33:16 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914832</link>
        <description><![CDATA[Adil: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914749'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T09:26:36+00:00">30.03.08, 09:26</time></span><div class='quote '>Несколько раз кодил аналоги 8086, с 4-256Кб памяти.<br>
Сейчас экспериментирую с интерфейсом, расчитанным на несколько Кб памяти, пытаясь сделать в графике :) если получится то срублю неплохие бабки.</div></div>Ну это сродни МК, тут спору нет - асм рулит.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914749'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T09:26:36+00:00">30.03.08, 09:26</time></span><div class='quote '>А думаешь нет? Уже пару лет поддерживаю пару программ, работающих на смешных компах, еще первые пни, с винтами на 125 и 500 Мб. Основное место занимают базы данных и система, оставляя программе мизер. Тут выбора нет, только асм и возможен.<br>
...<br>
Так что еще есть где развернуться, старого барахла осталось немало, а выкидывать его не торопятся</div></div>Ну так это от бестолковости заказчиков - свои же деньги считать не умеют - купить нормальный комп, программисту денег заплатить меньше - еще в большом плюсе останутся.]]></description>
        <author>Adil</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914749</guid>
        <pubDate>Sun, 30 Mar 2008 09:26:36 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914749</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914728'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T08:44:49+00:00">30.03.08, 08:44</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914653'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Hsilgos &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T00:54:06+00:00">30.03.08, 00:54</time></span><div class='quote '>Задумал я написать минимальную программу </div></div><br>
Вот, боюсь, большинство ассемблеровщиков и могут привести как аргумент подобные извращения. На практике часто встречаются такие задачи - минимальный по размеру ехе-шник? Очень уж это похоже на исскуство ради исскуства.</div></div><br>
А думаешь нет? Уже пару лет поддерживаю пару программ, работающих на смешных компах, еще первые пни, с винтами на 125 и 500 Мб. Основное место занимают базы данных и система, оставляя программе мизер. Тут выбора нет, только асм и возможен.<br>
Несколько раз кодил аналоги 8086, с 4-256Кб памяти.  <br>
Сейчас экспериментирую с интерфейсом, расчитанным на несколько Кб памяти, пытаясь сделать в графике :) если получится то срублю неплохие бабки.<br>
Так что еще есть где развернуться, старого барахла осталось немало, а выкидывать его не торопятся :)]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914728</guid>
        <pubDate>Sun, 30 Mar 2008 08:44:49 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914728</link>
        <description><![CDATA[Adil: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914653'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Hsilgos &#064; <time class="tag-quote__quoted-time" datetime="2008-03-30T00:54:06+00:00">30.03.08, 00:54</time></span><div class='quote '>Задумал я написать минимальную программу </div></div><br>
Вот, боюсь, большинство ассемблеровщиков и могут привести как аргумент подобные извращения. На практике часто встречаются такие задачи - минимальный по размеру ехе-шник? Очень уж это похоже на исскуство ради исскуства.<br>
<br>
Сам постоянно пишу на асм-е, но только для микроконтроллера. При этом заявить, что знаю ассемблер - ну никак не могу, ибо их - ассемблеров - уж больно много, я знаю более-менее хорошо только для одной(&#33;) линейки мк (а для 286 читаю, ну мелочь какую написать, и то с трудом; старшие - вообще тёмный лес). <br>
К сожалению - сколько процессоров, столько и ассемблеров. И каждый практически с 0 изучать надо - ведь это по сути не изучение языка, а изучение процессора. Расточительная трата времени.]]></description>
        <author>Adil</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914657</guid>
        <pubDate>Sun, 30 Mar 2008 01:25:19 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914657</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914366'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T15:39:58+00:00">29.03.08, 15:39</time></span><div class='quote '>Ну а для универсального языка плавающая точка - как-то не слишком актуально</div></div>Вспомнилось две игрухи, первая на Си, вторая на Паскале. Обе - шутеры, почти одинаковы (во втором спецэффекты более продвинутые). Но вторая на 70% состояла из асма. В результате - вторая работала более гладко, нежели первая, даже при вдвое большем разрешении экрана и большем количестве спецэффектов. Первая была - знаменитая Quake, а вот вторая - Chasm: Shadow The Rift :D А казалось бы, подумаешь ерунда, какой то там FPU.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914653</guid>
        <pubDate>Sun, 30 Mar 2008 00:54:06 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914653</link>
        <description><![CDATA[Hsilgos: Хе. Задумал я написать минимальную программу на C++, показывающую окно. Для этого, подумал я, нужно избавиться от CRT. Ога, пишем без глобальных объектов, без new/delete, на чистом WinAPI, указываем свою точку входа. Написал. Откомпилировал. Смотрю - тянет CRT. И тянет memset оттудава. Ага, подумал я:<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">#define ZeroMemory(ptr,size) memset(ptr,0,size)</div></ol></div></div></div></div><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">WNDCLASSEX classEx = {0};</div></ol></div></div></div></div><br>
Можно, конечно, занулить все поля вручную, но я решил, что ято не мой метод и надо писать своя &quot;занулятор&quot; =)<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">void MyZeroMem(void *ptr,unsigned int size)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;char *ch = ptr;</div><div class="code_line">&nbsp;&nbsp;for(i = 0 ; i &#60; size; ++i)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; *ch = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; ch++;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
Вставил, скомпилил, смотрю, всё равно, собака, тянет =(<br>
Дизассемблировал, и что же я вижу??? На том месте, где должна вызываться моя функция, компилятор вставил memset(&#33;&#33;&#33;&#33;). Это он, собака, соптимизировал&#33; Посмотрел, что я тут стабильно зануляю кусок памяти и решил, что memset работает быстрее (снимаю перед разработчиками оптимизатора шляпу).<br>
Вот тут то я и вспомнил, что компилятор никогда не меняет ассемблерные вставки... <br>
<br>
Это был чуть ли не единственный раз, когда я вспоминал ассемблер  :)]]></description>
        <author>Hsilgos</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914412</guid>
        <pubDate>Sat, 29 Mar 2008 16:47:36 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914412</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914366'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T15:39:58+00:00">29.03.08, 15:39</time></span><div class='quote '>реальная сложность отладки, сопровождения и модификации зависит именно от количества строк</div></div>Общий объем кода, в проекте несущественнен, все равно проект делится на небольшие модули, которые отлаживаются раздельно, с пол пинка ;) Может быть у нас с тобой разные подходы, но я предпочитаю дробить проект на множество мелких модулей(10-500 строк), нежели пихать все в кучу, как делают немало ЯВУшников, которые просто не умеют взять бумагу, карандаш, пиво, и продумать задачу в мельчайших деталях, тщательно разбивая ее на отдельные подзадачи. После подобной процедуры уже редко приходится пользоваться отладчиком, в основном допускаешь синтаксические ошибки, которые компилятор отлавливает. И расширяемость хорошая, поскольку модули получаются независимыми от других, типа ООП :) <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914366'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T15:39:58+00:00">29.03.08, 15:39</time></span><div class='quote '>Я на ЯВУ это количество при той же функциональности оказывается меньше</div></div>Могу разочаровать тебя - не всегда, более того не всегда код на ЯВУ получается нагляднее ;) Особенно когда пытаются сделать на ЯВУ чисто ассемблерные задачи.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914389</guid>
        <pubDate>Sat, 29 Mar 2008 16:12:22 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914389</link>
        <description><![CDATA[antigen: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1912937'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Azopp &#064; <time class="tag-quote__quoted-time" datetime="2008-03-28T03:40:58+00:00">28.03.08, 03:40</time></span><div class='quote '>В голосовании мне не хватает варианта:<br>
 <br>
Редко, только для оптимизации &quot;тяжелых участков&quot; кода.</div></div><br>
Ага, как раз для таких вещей и применяю. В основном оптимизация компактных вычислительных ядер с плавучкой - раз.<br>
И для минимизации времени выполнения и объема кода на встроенном микроконтроллерном железе (опять же - избранные куски) - два.]]></description>
        <author>antigen</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914366</guid>
        <pubDate>Sat, 29 Mar 2008 15:39:58 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914366</link>
        <description><![CDATA[andriano: <strong class='tag-b'>leo</strong>, еще раз: я признаю право на ассемблерную оптимизацию, но считаю, что в ней нуждается не более 10-20% программ, а в них, в свою очередь, не более 10-15% кода (т.е. доля ассемблерного кода - где-то 2%). В то же время компилляторы с ЯВУ, сециально предназначенных для обработки чисел с плавающей точкой (например, с Фортрана) делают достаточно &quot;чистый&quot; код. Ну а для универсального языка плавающая точка - как-то не слишком актуально. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>-Added <time class="tag-mergetime" datetime="2008-03-29T16:02:51+00:00">29.03.08, 16:02</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914361'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T15:38:37+00:00">29.03.08, 15:38</time></span><div class='quote '>Согласен только с первым, остальное - дело привычки и опыта.</div></div><br>
Не могу согласиться.<br>
Объем кода принято выражать в количестве строк не только потому, что больше не в чем, но и потому, что реальная сложность отладки, сопровождения и модификации зависит именно от количества строк. Я на ЯВУ это количество при той же функциональности оказывается меньше.]]></description>
        <author>andriano</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914361</guid>
        <pubDate>Sat, 29 Mar 2008 15:38:37 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914361</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>semiono &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T08:23:52+00:00">29.03.08, 08:23</time></span><div class='quote '>Но удивлён когда продвинутые программисты выбирают что-то другое...</div></div>Время - деньги ;) Но заметь, что если профи выбирают Си и Дельфи, то любители нередко предпочитают ассемблер, некоторые на него переходят именно с ЯВУ. Думаю этот факт о многом говорит.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914170'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>quotter &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T09:40:10+00:00">29.03.08, 09:40</time></span><div class='quote '>Думаю, в настоящее время знания ассемблера действительно необходимы только для исследования &quot;чужих&quot; программ</div></div>Тоже неплохой вариант. Зачастую проще &quot;подглядеть&quot; у других, чем лазить по многотонным докам, особенно с хорошим инструментарием :ph34r: <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914195'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T10:31:23+00:00">29.03.08, 10:31</time></span><div class='quote '>но код быстрее пишется, легче отлаживается, проще сопровождается и модифицируется</div></div>Согласен только с первым, остальное - дело привычки и опыта. Когда постоянно практикуешся, то вырабатывается стиль, позволяющий значительно упрощать отладку и модификацию. Но это относится и к ЯВУ, правда там &quot;адаптация&quot; происходит быстрее.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914195'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T10:31:23+00:00">29.03.08, 10:31</time></span><div class='quote '>вспомнил еще один вариант, где нужен ассемблер - добывание информации опроцессоре через CPUID</div></div>Вспомнить можно много чего, например мониторинг производительности, через регистры MSR и CESR ;) Или возьми такую область, как дебаггеры. Только на асме возможно легко и просто кодить работу с отладочными регистрами. Только на асме можно сделать обработчики исключений процессора. Только на асме можно реализовать нормальное переключение задач. Да много чего невозможно на ЯВУ ;) Просто расслабились все из-за винды, вот и думают, что виндозные дрова - это низкий уровень :lol:]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914258</guid>
        <pubDate>Sat, 29 Mar 2008 12:15:05 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914258</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914195'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T10:31:23+00:00">29.03.08, 10:31</time></span><div class='quote '>На ЯВУ можно (и нужно&#33;) написать все то же самое, что и на ассемблере (за исключением оптимизации средствами MMX, SSE, etc.), </div></div><br>
+ FPU , т.к. ЯВУ-компиляторы неплохо оптимизируют целочисленные операции и, мягко говоря, неважно FPU. Видимо из-за сложностей работы со FPU-стеком явушные реализации грешат ненужными загрузками&#092;выгрузками промежуточных FPU-вычислений в память и многочисленными обменами регистров fxch]]></description>
        <author>leo</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914195</guid>
        <pubDate>Sat, 29 Mar 2008 10:31:23 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914195</link>
        <description><![CDATA[andriano: Полностью согласен с <strong class='tag-b'>Azopp</strong>.<br>
На ЯВУ можно (и нужно&#33;) написать все то же самое, что и на ассемблере (за исключением оптимизации средствами MMX, SSE, etc.), но код быстрее пишется, легче отлаживается, проще сопровождается и модифицируется.<br>
<br>
PS. Нет, вру: вспомнил еще один вариант, где нужен ассемблер - добывание информации опроцессоре через CPUID.]]></description>
        <author>andriano</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914170</guid>
        <pubDate>Sat, 29 Mar 2008 09:40:10 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914170</link>
        <description><![CDATA[quotter: Думаю, в настоящее время знания ассемблера действительно необходимы только для исследования &quot;чужих&quot; программ. С другой стороны, если есть опыт, куча готовых шаблонов и функций - то почему б и нет. Я использую ассемблер просто ради интереса.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=230072&view=findpost&p=1914145'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>semiono &#064; <time class="tag-quote__quoted-time" datetime="2008-03-29T08:23:52+00:00">29.03.08, 08:23</time></span><div class='quote '>удивлён когда продвинутые программисты выбирают что-то другое...</div></div>наверное, ты часто бываешь удивлен ;)]]></description>
        <author>quotter</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914145</guid>
        <pubDate>Sat, 29 Mar 2008 08:23:52 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1914145</link>
        <description><![CDATA[semiono: Я соврал и ответил<br>&quot;Всегда, пишу программы только на чистом ассемблере&quot;<br>потомучто не умею вообще&#33;<br><br>Но удивлён когда продвинутые программисты выбирают что-то другое...<br>Мну всегда духом болеет только за асм&#33;<br>А лучше может только быть машинный код... Но времена и нравы меняются и против этого уже трудно попереть  :ph34r:]]></description>
        <author>semiono</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913836</guid>
        <pubDate>Fri, 28 Mar 2008 17:18:35 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913836</link>
        <description><![CDATA[AndNot: Почти всегда :) Крайне редко использую, как каркас, Дельфи, Паскаль, Борланд Си и Ватком Си(весчь), но все равно, основной код оформлен на асме.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913782</guid>
        <pubDate>Fri, 28 Mar 2008 16:01:05 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913782</link>
        <description><![CDATA[Qraizer: Ответил (и пока единственный) &quot;никогда&quot;. Был бы вариант &quot;Никогда, даже для программирования железа&quot; выбрал бы его.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913335</guid>
        <pubDate>Fri, 28 Mar 2008 10:30:13 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1913335</link>
        <description><![CDATA[Lumen: <strong class='tag-b'>Azopp</strong><br>
Я думаю тебе больше всего подойдет 3 вариант ответа, так как обычно (по личному опыту) это так и происходит. Может быть не очень часто. Но с целью оптимизации...]]></description>
        <author>Lumen</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1912937</guid>
        <pubDate>Fri, 28 Mar 2008 03:40:58 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1912937</link>
        <description><![CDATA[Azopp: <strong class='tag-b'>schooler</strong><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">Редко, только для оптимизации &quot;тяжелых участков&quot; кода.</div></ol></div></div></div></div>]]></description>
        <author>Azopp</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1912932</guid>
        <pubDate>Fri, 28 Mar 2008 03:28:35 +0000</pubDate>
        <title>Как часто вы используете ассемблер?</title>
        <link>https://forum.sources.ru/index.php?showtopic=230072&amp;view=findpost&amp;p=1912932</link>
        <description><![CDATA[schooler: Прошу выбрать один из вариантов ответа. <br>     Я лично активно использую и изучаю ассемблер. Этот язык даёт неограниченные возможности управления компьютером и позволяет писать эффективный и компактный код. А что думаете вы?]]></description>
        <author>schooler</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	