<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; OFF: Про ассемблер]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9106&amp;type=atom" />
	<updated>2014-01-05T00:20:21Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=9106</id>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78908#p78908" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Но интерпретатор - всё же среда исполнения, а не преобразователь smile</p></blockquote></div><p>С первым согласен. Со вторым — нет.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-01-05T00:20:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78908#p78908</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78902#p78902" />
			<content type="html"><![CDATA[<p><strong>alexii</strong>, мир меняется, возможно, мы оба првы... Но интерпретатор - всё же среда исполнения, а не преобразователь <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-04T23:01:52Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78902#p78902</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78895#p78895" />
			<content type="html"><![CDATA[<p><strong>Serge Yolkin</strong>, ясно. В моём понимании, транслятор — это программа, осуществляющая преобразование программы, написанной на одном языке, в программу, написанную на другом языке. Её частными случаями являются и компилятор, и интерпретатор. Первый осуществляет преобразование программы целиком, второй — по инструкциям, как правило — построчно (иногда бывают и оригинальные идеи — компилирующий интерпретатор, как в QBasic).</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-01-04T20:01:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78895#p78895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78893#p78893" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Расскажите.</p></blockquote></div><p>См. боян в предыдущем посте <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>В самом низу - трансляция - буквальный перевод мнемоник (не команд!) в машинный код. Текстовый исходник -&gt; трансляция -&gt; бинарный файл (обычно obj).<br />Выше - компиляция - перевод &quot;литературный&quot;: команды имеют немашинную (предполагается - человеческую) семантику, результирующий код зависит от контекста (одна и та же команда, использованная, скажем, в начале файла и в подпрограмме даст разный результат в машинном коде (область видимости, стэк и т.д.), соответственно и обработка производится в несколько проходов - анализируется контекст, блоки команд (процедуры, подпрограммы) команды и т.д. Трансляция на последнем этапе присутствует, но не из ассемблера, а из некоего промежуточного кода, зависящего от конкретного компилятора. На выходе (обычно) - готовый экзешник.<br />На самом верху (по оторванности от железа) - интерпретация - текстовый исходник обрабатывается интерпретатором налету, без преобразования в бинарный файл. В те времена - шелл да комманд.ком...</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-04T19:17:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78893#p78893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78890#p78890" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>Меня несколько иначе учили. Три типа обработчиков исходного кода,</p></blockquote></div><p>Расскажите.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-01-04T19:03:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78890#p78890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78889#p78889" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Транслятором является как интерпретатор, так и компилятор. Просто действуют они по-разному.</p></blockquote></div><p>Это в какой википедии написано? Меня несколько иначе учили. Три типа обработчиков исходного кода, как три источника и три составных части марксизма...</p><div class="quotebox"><blockquote><p>Совсем не понял.</p></blockquote></div><p>Что? Программа masm.exe называется Macro Assembler, tasm.exe - Turbo Assembler... Это я и имел в виду. А священные войны за кошерную терминологию - это не моё. Здесь я на редкость демократичен.</p><p><strong>serzh82saratov</strong>, боян, но, надеюсь, хорошо забытый:<br />команда начальника: &quot;Чёзанах?&quot;<br />интерпретация: сотрудник думает: &quot;в следующий раз надо не умничать, а делать что говорят...&quot;;<br />компиляция: бухгалтерия срезает половину премии сотрудника, сотрудник, получив в кассе машинный код, делает что говорят;<br />трансляция: сотрудник расстёгивает ширинку и правда - чё?</p><p>Ассемблер переводит исходник буквально, даже не так, как переводят с русского на английский - там обработка текста есть, а так, как текстовый файл переводится из кодировки UTF-16 LE в UTF-16 BE и обратно. Однозначно и без изменения имеющейся информации. Переводит, разумеется, программа-транслятор.</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-04T18:45:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78889#p78889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78887#p78887" />
			<content type="html"><![CDATA[<p>Я не в теме. Потому ещё глупый вопрос:<br /></p><div class="quotebox"><blockquote><p><strong>без</strong> дополнительной <strong>обработки</strong>,</p></blockquote></div><p>и<br /></p><div class="quotebox"><blockquote><p><strong>переводится</strong> в машинный код.</p></blockquote></div><p>Каким именно образом переводится? Как, когда и что этот перевод осуществляет?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-01-04T18:11:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78887#p78887</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78886#p78886" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>alexii, во-первых, я обозвал ассемблер транслятором в ответ на заявление, что он - интерпретатор, в данном контексте не вижу ошибки;</p></blockquote></div><p>Транслятором является как интерпретатор, так и компилятор. Просто действуют они по-разному.</p><div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>во-вторых, программа интерпретатор имеет полное право называться ассемблером, да, собственно, они так и называются;</p></blockquote></div><p>Совсем не понял.</p><div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>…или главное - спорить?</p></blockquote></div><p>Цель — договориться о корректной терминологии.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-01-04T18:08:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78886#p78886</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78885#p78885" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, ещё раз: нет никакой интерпретации. Совсем. Строчка на ассемблере (кто в теме - не придерайтесь к словам, я упрощаю) однозначно, без дополнительной обработки, переводится в машинный код. Тождество. Одна строка - одна команда процессора. Поэтому и обратный перевод возможен, в отличие от высокоуровневых языков, где одна команда в исходниках может породить что угодно в машинном представлении. И, если версия ассемблера актуальна для используемого процессора, такой строчкой в исходнике может быть представлена ЛЮБАЯ команда процессора. С ЛЮБЫМИ параметрами. Потому и оптимизировать нечего: одна строка == одна команда, и обратно. И если можно что-то поменять в бинарнике, то это же точно так же можно поменять и в исходнике. Поскольку - тождество.</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-04T18:03:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78885#p78885</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78879#p78879" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Ассемблер - ни разу не интерпретатор, он - транслятор. А означает это, что исходник на ассемблере и машинный код могут быть сколько угодно раз транслированы туда-обратно. И если человеческая логика позволяет что-то оптимизировать в машинных кодах, то и на ассемблере эта оптимизация доступна, хотя бы дизассемблированием. Возможны проблемы с внешними макросами / библиотеками процедур, но это не проблема ассемблера. Видел парочку &quot;продвинутых&quot; ассемблеров, типа объектноориентированные и т.д., но это уже либо компилируемый язык, либо ассемблер со встроенными теми самыми библиотеками. Поэтому, земляк, хоть голословно, хоть нет - не убедил.</p></blockquote></div><p>Я ничего не утверждаю, и тем более ни кого не убеждаю, хотя бы в силу своего дилетантизма. Вообще завёл речь про это, чтобы из возможного дальнейшего обсуждения подчерпнуть знаний для себя. А так как на лицо разногласия между гуру, значит вопрос неоднозначен.<br />Код на ассемблере это текстовый файл. Машинный код - единицы и нули, единственное что может понять процессор. <br />Перед тем как запустить в работу машинный код для непосредственной обработки процессором, требуются ресурсы для интерпретации текста ассемблера в машинный код.<br />Машинный код это бинарный файл, он принимается в обработку процессором без предварительного выделения ресурсов на его интерпретацию.<br /></p><div class="quotebox"><blockquote><p>И если человеческая логика позволяет что-то оптимизировать в машинных кодах, то и на ассемблере эта оптимизация доступна,</p></blockquote></div><p>Человеческая логика может только заранее предусмотреть некоторые варианты того что может наваять программер, и внести это в алгоритм интерпретации текста в машинный код.<br />Конечно можно легко полученный машинный код преобразовать обратно в код ассемблера, через &quot;обратный алгоритм интерпретации&quot; того же <span class="bbu">ассемблера</span>, но речь ведь совсем не об этом. А про то что машинный код интерпретированный ассемблером можно в большинстве случаев далее оптимизировать исходя из каждого конкретного случая.</p><p><span class="bbu">Это мои предположения</span>. Если тут присутствуют глубокие заблуждения, прошу не пинать ногами, а просто объяснить что не правильно.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-01-04T17:20:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78879#p78879</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78877#p78877" />
			<content type="html"><![CDATA[<p><strong>alexii</strong>, во-первых, я обозвал ассемблер транслятором в ответ на заявление, что он - интерпретатор, в данном контексте не вижу ошибки; во-вторых, программа интерпретатор имеет полное право называться ассемблером, да, собственно, они так и называются; в-третьих, диалекты, или, если угодно, реализации ассемблера, помимо того общего, что объединяет их в одно семейство, имеют и некоторые различия (когда я писал на масме, переводить тасмовские примеры было не всегда элементарно), поэтому, на мой взгляд, корректнее говорить о семействе языков программирования и конкретных реализациях, неразрывно связанных с трансляторами. А на &quot;задвинутых&quot; не писал - так, любопытствовал. Кажется, один из них назывался не то Monade, не то как-то похоже (гуглить лень).</p><p>А вообще - не понял, о чём Вы и <strong>greg zakharov</strong> со мной-то спорите? Вроде, я в своём ответе земляку был на Вашей стороне, или главное - спорить?</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-04T16:59:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78877#p78877</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78844#p78844" />
			<content type="html"><![CDATA[<p>Ассемблер по сути является символическим представлением машинного языка, именно поэтому он неразрывно связан с архитектурой процессора (логично предположить, что с внесением изменений в архитектуру последнего совершенствуется и сам язык ассемблера). Так что разговоры о &quot;продвинутых&quot; (или &quot;задвинутых&quot;) версиях ассемблера - сплошная софистика, а вот:</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Дело доходило до того что сам код сокращался в двое, так же как и его быстродействие улучшалось в 2-3 раза.</p></blockquote></div><p>это скорее касательно стиля написания программ (точнее оптимизации кода), нежели &quot;излишеств&quot; ассемблера, - г-н <strong>alexii</strong> прав.</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2014-01-04T09:26:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78844#p78844</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78835#p78835" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Там суть в том, что человек раскладывал простейшие операции\алгоритмы на ассемблере в виде машинного кода. И показывал как их можно логически упростить и сократить на том же машинном коде.</p></blockquote></div><p>Не знаю, что там происходило, но вообще-то 1 инструкция ассемблера = 1 инструкция процессора. Просто вместо машинного кода, т.е. числа, используется какое-то условное имя (мнемоника), чтобы человеку проще было инструкции запомнить. Да, какой-то конкретный ассемблер может предлагать какие-то свои макросы для ускорения написания кода, например, оформление функций. Вход в процедуру, выход из неё и т.п. В каких-то случаях стандартная обвязка может быть неоптимальной, но всегда можно обойтись без неё или свою написать.</p><p>Машинный код нужен, если в ассемблере ещё нет мнемоник для каких-то инструкций процессора. Не успел ещё автор обновить свой ассемблер или забросил его.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-04T04:26:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78835#p78835</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78833#p78833" />
			<content type="html"><![CDATA[<p>Вообще-то, ассемблер — это язык программирования низкого уровня <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />. А транслятор — приложение, преобразующее исходный код на языке программирования в объектный код.</p><div class="quotebox"><blockquote><p>Видел парочку &quot;продвинутых&quot; ассемблеров, типа объектноориентированные и т.д.</p></blockquote></div><p>Каких именно?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-01-04T00:21:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78833#p78833</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: OFF: Про ассемблер]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=78832#p78832" />
			<content type="html"><![CDATA[<p>Ассемблер - ни разу не интерпретатор, он - транслятор. А означает это, что исходник на ассемблере и машинный код могут быть сколько угодно раз транслированы туда-обратно. И если человеческая логика позволяет что-то оптимизировать в машинных кодах, то и на ассемблере эта оптимизация доступна, хотя бы дизассемблированием. Возможны проблемы с внешними макросами / библиотеками процедур, но это не проблема ассемблера. Видел парочку &quot;продвинутых&quot; ассемблеров, типа объектноориентированные и т.д., но это уже либо компилируемый язык, либо ассемблер со встроенными теми самыми библиотеками. Поэтому, земляк, хоть голословно, хоть нет - не убедил.</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-03T23:47:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=78832#p78832</id>
		</entry>
</feed>
