Обсуждение:Язык ассемблера

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Пожалуйста, добавляйте новые темы снизу


Ассемблер и язык ассемблера[править код]

ошибка в названии статьи, правильное название — "язык ассемблера"... а собственно ассемблер — это разновидность транслятора... слово "ассемблер" часто используют для обозначения языка ассемблера просто для краткости или по незнанию, но это не верно... --Dionys 12:29, 20 Июл 2004 (UTC)

Ассемблер это и символическая запись команд конкретного микропроцессора, и сам транслятор, и его входной язык (который может содержать, скажем, специфические для транслятора макросредства). Одно слово, но три значения. --Арви Хэкер 20:09, 16 мая 2007 (UTC)
Тут уж как условиться, так и будет (Перельмана читал - про "обход вокруг белки"?). Ясен пень, для краткости лучше везде "ассемблер". Нужно только добавлять примечания/секции про терминологию. — Vano 03:08, 26 ноября 2007 (UTC)

Ассемблеры для архитектур[править код]

По хорошему должен быть в Википедии портал, отправляющий на странички по ассемблерам конкретных архитектур. Ну и на общие bla-bla-bla про синтаксисы AT&T, NASM'а, историю этих компиляторов и т.д. --Арви Хэкер 20:09, 16 мая 2007 (UTC)

Не, портал - это слишком (порталы вообще для другого предназначены). Для описания всех разновидностей достаточно раздела; если разрастется - статьи. Все-таки у нас тут не техническое описание языков со всеми командами и директивами. — Vano 03:03, 26 ноября 2007 (UTC)

Почему в статье синтаксис Intel ассемблера описан как единственный? Есть еще AT&T(UNIXовый, тоже распространенный) и bin86(ужас на котором загрузчик Linux 2.0 был, теперь уже перешел на AT&T усилиями Peter Anvin). — Эта реплика добавлена с IP 212.152.41.35 (о) 20:12, 12 января 2008 (UTC)

Исследования вирусов[править код]

Хотелось бы спросить, с каких это пор исследование вирусов стало нелегальным ? Ведь сами производители антивирусов исследуют их точно таким же образом, а если не исследуют - то грош цена их антивирусам. Неужели они боятся что такие люди унесут секреты обезвреживания вирусов в массы и их продажи упадут ? Помоему они сами запрещают делать то чем сами активно занимаются. Пусть по крайней мере покажут строку в УК РФ или в конституции РФ где бы это запрещалось. Ведь пока есть только статья о "Создании И(!) распостронении вредосноных программ" исследования вирусов под эту статью не попадает, а значит данное утверждение лишено всякого смысла и может быть рассмотренно как неверная трактовка закона или изобретение своих собственных, а это как раз попадает под статью. 62.141.50.149 05:54, 14 августа 2008 (UTC)Исследователь

Ссылки[править код]

Ссылка на ASMFAQ (http://sgww.ru/asmfaq.htm)
Внимание этом FAQ находится ошибка, в таблице значений для команды xor написано

XOR 1 0
1 0 1
0 1 0

А должно быть

Операнд 1 Операнд 2 Результат
0 1 1
1 0 1
1 1 0
0 0 0
Александр Фролов 13:54, 9 января 2009 (UTC)
  • не вижу никакой ошибки. обе таблицы говорят одно и то же: если опранды равны - результат "0", если различны - "1"
    Radistao 11:39, 11 января 2009 (UTC)

Кто просит ссылки?[править код]

Какой умник требует ссылки на абзацы типа: >>> Искусный программист, как правило, способен написать более эффективную программу на ассемблере, чем те, что генерируются трансляторами с языков программирования высокого уровня, то есть для программ на ассемблере характерно использование меньшего количества команд и обращений в память, что позволяет увеличить скорость и уменьшить размер программы. >>> ? Если не понимает предмета написанного, чего требует? Это ж то же самое, что попросить ссылочку на заявление вроде "Как правило, автобусы опаздывают"... 87.252.243.171 23:47, 15 августа 2009 (UTC) Почитавший

Как это соотносится?[править код]

Искусный программист, как правило, способен написать более эффективную программу на ассемблере, чем те, что генерируются трансляторами с языков программирования высокого уровня, то есть для программ на ассемблере характерно использование меньшего количества команд и обращений в память, что позволяет увеличить скорость и уменьшить размер программы.

и

Главное преимущество ассемблера практически полностью нивелируется хорошей оптимизацией в современных компиляторах языков высокого уровня.

По-моему здесь некоторое противоречие. Либо надо уточнить что такое "практически полностью". Xchgall 08:50, 9 января 2010 (UTC)

  • Нет тут противоречия, поскольку ключевые слова - "искусный" в первом и "практически" во втором утверждении. Искусные программисты - это очень малая часть всех программистов (даже среди тех, кто может на асме писать), но даже искусные программисты не обязательно всегда пишут безупречный код. И потому, искусность в одном аспекте оптимизации может нивелироваться пробелами в других (например, в знании каких-то процессорных тонкостей). Так что да, на практике, в большинстве случаев оптимизация компилятором будет скорее всего не уступать ручной оптимизации. -- AVBtalk 21:38, 9 января 2010 (UTC)
На самом деле всё что вы сказали было бы правильней описать "Главное преимущество ассемблера практически полностью нивелируется неискусностью и незнаниями программистов на нём". По-моему к самому языку это вообще-то мало относится. Xchgall 21:48, 9 января 2010 (UTC)
  • к самому языку это вообще-то мало относится - во-первых, языки в отрыве от носителей/программистов мало что значат. То, что ассемблер - это более тонкий инструмент, не будет ничего значить, если его тонкостью некому будет воспользоваться. И наоборот: оптимизация компилятора сглаживает как неэффективность самого языка, так и неэффективность работы программистов. Соответственно, это имеет к языку прямое отношение - его преимуществом является "тонкость", но это преимущество нивелируется как низким уровнем среднего программиста, так и хорошими оптимизаторами. Во-вторых, ваша формулировка по сути говорит то же самое, что и было сказано изначально, только без детализации. Так что если в исходных утверждениях вы видите противоречие, то и в вашей формулировке оно остаётся. -- AVBtalk 23:59, 9 января 2010 (UTC)

AVB, 1-й пункт недостатков весьма неопределенный. "Могут нивелироваться", то есть, могут, а могут и не нивелироваться, то есть формально правильно, но читателю преподносится мнение, не подкрепленное фактами. В указанной Вами ссылке Касперски пишет Заключение И все же, есть области, в которых ассемблер необходим - можно даже сказать, неизбежен. В первую очередь это высокопроизводительные математические и графические библиотеки, использующие векторные инструкции типа MMX или SSE. На эффективную векторизацию данных компиляторы, увы, не способны. И на языках высокого уровня тоже надо знать, как писать. На любом языке можно написать сколь угодно неэффективную программу Пример ошибки компилятора: http://forums.topcoder.com/?module=Thread&threadID=631917&start=0&mc=21 Реальный недостаток ассемблера -- это то, что при написании на языках высокого уровня можно быстрее закодировать более эффективные алгоритмы. Поскольку источников для заявления нет, я его убираю.Mathaddict 12:09, 1 июня 2010 (UTC)

  • могут и не нивелироваться - вы правы, "могут нивелироваться" не является недостатоком, недостатком является то, что это происходит как правило в случае посредственного программиста (таковых большинство) и более-менее оптимизирующего компилятора. Так что я сейчас поправлю формулировку. эффективную векторизацию данных компиляторы, увы, не способны - это утверждение может быть верно для конкретного набора конкретных версий компиляторов, но оно не является непреложной истиной в последней инстанции для всех компиляторов сейчас и в будущем. Эффективно векторизовать данные не может ещё большее количество программистов, так что паритет сохраняется. тоже надо знать, как писать - кто спорит. Однако языки высокого уровня за счёт оптимизации компилятором "прощают" большую небрежность при написании, нежели в случае языка ассемблера. И в этом вся соль пункта, на который вы взъелись. Пример ошибки компилятора - то, что в компиляторах, как и в других программах, (могут) существовать ошибки - это не новость. Но каким боком это относится к обсуждаемому пункту? Поскольку источников для заявления нет - смело. Типа, то, что я какие-то источники (может, не самые лучшие из возможных) представил - это можно смело не брать в рассчёт? -- AVBtalk 17:49, 1 июня 2010 (UTC)

Насчет будущего - википедия отражает существующее настоящее. Когда оно меняется, меняется и статья. Так что ваше высказывание о фразе из источника -- не к месту. Там к тому же очевидно, что автор говорил о достаточно хороших компиляторах. Эффективно векторизовать данные не может ещё большее количество программистов, так что паритет сохраняется. -- это высказывание такого же рода, что в игре го компьютер равен человеку, т.к. большинство людей не умеет играть в го. Моя претензия заключается в том, что из источников вовсе не вытекает то, что написано в пункте статьи (так обычно и бывает, когда источники подыскиваются задним числом), наряду с неэнциклопедическим "нивелируются", и в этом же пункте дублируется последний. Поэтому я приведу пункт в соответствие с источником.Mathaddict 03:45, 3 июня 2010 (UTC)

  • ваше высказывание о фразе из источника - вы забываете, что я говорю не только о временах, но и о полноте исследованного множества компиляторов. Ведь кроме "потребительских" компиляторов вроде Borland C существуют и менее известные компиляторы с более качественными оптимизаторами, в том числе ориентированные и на векторизацию. Но даже если их не было бы, вопрос всё равно не в конкретных компиляторах "здесь и сейчас", а в принципиальной возможности. подыскиваются задним числом - но сути обсуждаемого утверждения это не меняет. приведу пункт - отсутствие встроенного оптимизатора даёт шанс оптимизирующим компиляторам (1) обойти программу на асме, написанную средним программистом, и получить более качественный результат при перекомпиляции под другую платформу (тогда как программа на асме останется незменной); своим редактированием вы порезали значимую часть утверждения про перекомпиляцию под другую (совместимую) архитектуру. -- AVBtalk 11:30, 6 июня 2010 (UTC)
    • Меняет. То, что для доказательства орисса про "среднего программиста" приводится источник, в котором говорится "начинающий программист", не есть хорошо. Тогда как программа на асме останется незменной неверно: условная трансляция, самомодифицирующийся код. Из заезженного утверждения про оптимизацию под платформу вроде как следует, что Java должна быть быстрее C/C++, тогда как на практике наблюдается обратно. Вы, кажется, не понимаете основной разницы между программами на языках высокого уровня и ассемблере.Mathaddict 05:05, 9 июня 2010 (UTC)

Зачем все эти "Статьи РФ"?[править код]

Прямо не энциклопедию, а УК РФ читаю: там 2 года дадут, тут 7 лет отсидеть... Для чего эти строчки в тексте? Попугать? Может в статью об отвертках тоже написать сколько за колото-ножевые раны дают? Убрать этот бред немедленно! 93.81.238.222 18:29, 2 февраля 2010 (UTC)

  • Вы правы, стоит убрать. Тут даже в "программирование" этот раздел не засунешь. -- AVBtalk 09:24, 3 февраля 2010 (UTC)


Директивы[править код]

"...директивы (команды, не переводящиеся в процессорные инструкции, а выполняемые самим ассемблером)"

Это как? А "сам ассемблер" чем выполняется? Не процессором?

  • Имеются в виду, что директивы влияют в первую очередь на процесс трансляции, а на результат трансляции влияют только косвенным образом. --Grig_siren 18:34, 1 мая 2011 (UTC)


Ошибочный код[править код]

К сожалению, программный код выполняет иные действия, чем заявлено. Этот код копирует строку в видеобласть. Никакого отношения к считыванию дискеты не имеет

--Морфеус 15:31, 14 января 2013 (UTC)

Можете поправить описание? Я так понимаю что и именованные ячейки SectSize - HidnSec тоже в программе не нужны. Xchgall 22:06, 20 марта 2013 (UTC)

Откат правки[править код]

Откатил эту правку т.к. свои комментарии нужно высказывать на странице обсуждения + комментарий неверен. В коде используется косвеная адресация и в al будет загружен 1 байт из соответствующей ячейки памяти. Xchgall 22:09, 20 марта 2013 (UTC)

Достоинства и недостатки[править код]

Я не совсем уверен, что такая глава вообще должна быть в вики-статье. Достоинства и недостатки - это довольно субъективные понятия. Так же, в этом разделе присутствуют "Достоинства", которые таковыми назвать нельзя. Например фраза "Язык ассемблера используется для создания «прошивок» BIOS." - это не достоинство, а скорее сфера применения.