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

message: __TOC__

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

message: По хорошему должен быть в Википедии портал, отправляющий на странички по ассемблерам конкретных архитектур.  Ну и на общие bla-bla-bla про синтаксисы AT&T, NASM'а, историю этих компиляторов и т.д. --Арви Хэкер 20:09, 16 мая 2007 (UTC)
replies: text: Не, портал - это слишком (порталы вообще для другого предназначены). Для описания всех разновидностей достаточно раздела; если разрастется - статьи. Все-таки у нас тут не техническое описание языков со всеми командами и директивами. — Vano 03:03, 26 ноября 2007 (UTC)
Почему в статье синтаксис Intel ассемблера описан как единственный? Есть еще AT&T(UNIXовый, тоже распространенный) и bin86(ужас на котором загрузчик Linux 2.0 был, теперь уже перешел на AT&T усилиями Peter Anvin).
thread_title: Ассемблеры для архитектур

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

message: Ссылка на 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)
thread_title:  Ссылки 

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

message: ::Искусный программист, как правило, способен написать более эффективную программу на ассемблере, чем те, что генерируются трансляторами с языков программирования высокого уровня, то есть для программ на ассемблере характерно использование меньшего количества команд и обращений в память, что позволяет увеличить скорость и уменьшить размер программы.
и
replies: text: :Главное преимущество ассемблера практически полностью нивелируется хорошей оптимизацией в современных компиляторах языков высокого уровня.
По-моему здесь некоторое противоречие. Либо надо уточнить что такое "практически полностью".
Xchgall 08:50, 9 января 2010 (UTC)
* Нет тут противоречия, поскольку ключевые слова - "искусный" в первом и "практически" во втором утверждении. Искусные программисты - это очень малая часть всех программистов (даже среди тех, кто может на асме писать), но даже искусные программисты не обязательно всегда пишут безупречный код. И потому, искусность в одном аспекте оптимизации может нивелироваться пробелами в других (например, в знании каких-то процессорных тонкостей). Так что да, на практике, в большинстве случаев оптимизация компилятором будет скорее всего не уступать ручной оптимизации. -- AVBtalk 21:38, 9 января 2010 (UTC)
replies: text: ::На самом деле всё что вы сказали было бы правильней описать "Главное преимущество ассемблера практически полностью нивелируется неискусностью и незнаниями программистов на нём". По-моему к самому языку это вообще-то мало относится. Xchgall 21:48, 9 января 2010 (UTC)
replies: text: ::* к самому языку это вообще-то мало относится - во-первых, языки в отрыве от носителей/программистов мало что значат. То, что ассемблер - это более тонкий инструмент, не будет ничего значить, если его тонкостью некому будет воспользоваться. И наоборот: оптимизация компилятора сглаживает как неэффективность самого языка, так и неэффективность работы программистов. Соответственно, это имеет к языку прямое отношение - его преимуществом является "тонкость", но это преимущество нивелируется как низким уровнем среднего программиста, так и хорошими оптимизаторами. Во-вторых, ваша формулировка по сути говорит то же самое, что и было сказано изначально, только без детализации. Так что если в исходных утверждениях вы видите противоречие, то и в вашей формулировке оно остаётся. -- 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)
thread_title:  Как это соотносится? 

message: Прямо не энциклопедию, а УК РФ читаю: там 2 года дадут, тут 7 лет отсидеть... Для чего эти строчки в тексте? Попугать? Может в статью об отвертках тоже написать сколько за колото-ножевые раны дают? Убрать этот бред немедленно! 93.81.238.222 18:29, 2 февраля 2010 (UTC)
* Вы правы, стоит убрать. Тут даже в "программирование" этот раздел не засунешь. -- AVBtalk 09:24, 3 февраля 2010 (UTC)
thread_title:  Зачем все эти "Статьи РФ"? 

message: "...директивы (команды, не переводящиеся в процессорные инструкции, а выполняемые самим ассемблером)"
Это как? А "сам ассемблер" чем выполняется? Не процессором?
* Имеются в виду, что директивы влияют в первую очередь на процесс трансляции, а на результат трансляции влияют только косвенным образом. --Grig_siren 18:34, 1 мая 2011 (UTC)
thread_title:  Директивы 

message: К сожалению, программный код выполняет иные действия, чем заявлено. Этот код копирует строку в видеобласть. Никакого отношения к считыванию дискеты не имеет
--Морфеус 15:31, 14 января 2013 (UTC)
replies: text: Можете поправить описание? Я так понимаю что и именованные ячейки SectSize - HidnSec тоже в программе не нужны. Xchgall 22:06, 20 марта 2013 (UTC)
thread_title:  Ошибочный код 

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

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

message: использование директив языка ассемблера для превращения любого бинарного файла в его db HEX репрезентацию
(позволяет выкладывать точные репрезентации файлов, на ресурсах, на которых выкладывать бинарные формы запрещено)
(репрезентация db HEX - полностью обратимый аналог бинарного файла, собирается любым ассемблером обратно в бинарный файл)
format binary as 'txt'
dd 'db  '
offs = $
itsz = $
file 'полный путь до файла, которому должна быть создана db HEX репрезентация';:0,304
size = $-offs
db size dup (0,0,0)
dollar = '$'
comma = ','
linenums = size shr 4
dd linenums dup 0
repeat size
  idx = size-%
  row = idx shr 4
  load c byte from idx+offs
  l = c/16
  h = c mod 16
  if h>9
    h = h + 'A' - 10
  else
    h = h + '0'
  end if
  if l>9
    l = l + 'A' - 10
  else
    l = l + '0'
  end if
  w = l+ h shl 8
  store byte dollar  at (idx + row)*itsz + offs-1
  store word w       at (idx + row)*itsz + offs
  if idx mod 16 < 15
    store byte comma at (idx + row)*itsz + offs+2
  else
    store word $0A0D at (idx + row + 1)*itsz + offs-2
    store word 'db'  at (idx + row + 1)*itsz + offs
    store byte ' '   at (idx + row + 1)*itsz + offs+2
  end if
end repeat
store byte '?' at $-1  
Использовано лично для загрузки репрезентаций EXE и DLL, например, во вконтакте. Это будет полезный примерчик, который может помочь каждому расшарить в интернете ресурсы которые расшарить в бинарной форме нельзя, повысить доверие к любому сайту со стороны антивирусов...
Дизассемблирование не единственная операция обратная ассемблированию, формирование db HEX репрезентации, такая же обратная ассемблированию операция.
(Как говорится, я предложил, а Вы там поавторитетнее, посчитаете интересным добавить - добавьте)
У:ProMiNick 11:17, 26 октября 2020 (UTC)
* Проставил теги <source>. — Vort (обс.) 08:48, 26 октября 2020 (UTC)
* . Возражаю, поскольку, во-первых, это является ВП:ОРИССными исследованиями, и, во-вторых, не имеет никакой энциклопедической значимости, в-третьих, Википедия - не место для публикации эссе. Я уже писал Вам вот здесь, что подобные изыскания стоит публиковать в личных блогах. Судя по Вашему опыту и квалификации, а также желанию делиться ими с другими, Вам давно пора завести такой блог и публиковать в нём интересные статью (я серьёзно). Но это не значит, что каждый существующий фрагмент кода или вариант его использования должен размещаться в энциклопедию. Юрий (обс.) 08:50, 26 октября 2020 (UTC)
**  значит ли это, что и пример «Пример структурирования данных: создание BMP-файла к коде программы с помощью директив» из статьи надо удалять? Если да, то будет ли это кто-то делать? — Vort (обс.) 08:53, 26 октября 2020 (UTC)
replies: text: :* Этот пример также был написан участником У:ProMiNick, только находился в статье Ассемблер, а мной был только перенесён сюда вместе с другими кодами, когда я чистил ту статью (так как примерам место не там, а тут). А вообще я лично тоже не приветствую нахождение здесь этого примера про BMP, потому что он выходит за рамки основной цели языка ассемблера. Если будет поднят вопрос о его удалении, я проголосую "за" с уже озвученной аргументацией. Юрий (обс.) 09:01, 26 октября 2020 (UTC)
replies: text: ::* Что насчёт остальных примеров? Они не ОРИСС? Надо ли их удалять? — Vort (обс.) 09:07, 26 октября 2020 (UTC)
replies: text: :::* Источники ни для одного не указаны, их происхождение я не знаю. Но это не значит, что они не рабочие, и к тому же они здесь, скорее, просто для иллюстрации. Если всё удалять, мы вообще без примеров остаемся, что не очень хорошо. Юрий (обс.) 09:14, 26 октября 2020 (UTC)
replies: text: ::::* В том-то и дело. Если тщательно следовать правилам, то раздел с примерами написать будет или очень сложно, или невозможно. Но и тащить в него всё подряд тоже неправильно. Я бы предложил тривиальность в роли критерия. Это и количество примеров ограничивает и их оригинальность. — Vort (обс.) 09:34, 26 октября 2020 (UTC)
replies: text: :::::* Вот вот, я заметил пример с BMP есть. формат db репрезентации куда интереснее, чем BMP.У:ProMiNick 11:57, 26 октября 2020 (UTC)
replies: text: :::::* На счёт критерия согласен. Количество примеров, скорее, ограничивается числом рассматриваемых архитектур и операционных систем (в случае ПК). Юрий (обс.) 09:44, 26 октября 2020 (UTC)
replies: text: ::::::* в качестве источника для примеров можете попробовать https://pagedout.institute, правда вам виднее степень авторитетности ресурса У:ProMiNick 12:50, 26 октября 2020 (UTC)
replies: text: :::::::* Задача сложнее, чем просто найти какой угодно кусок кода в авторитетном источнике. Надо ведь, чтобы этот код своим примером показывал читателю, каким является язык ассемблера. И именно на это нужен авторитетный источник. :pl:Gynvael Coldwind, кстати, похож на специалиста, источники которого подойдут для статей. Но в данном случае они просто не в тему. — Vort (обс.) 10:35, 26 октября 2020 (UTC)

text: ::::*  ещё интересный вопрос. Если всё же найти высококачественный источник с примером, который будет представлен именно как пример, то можно ли его будет помещать в статью? Не прийдут ли защитники авторского права и не скажут ли, что это КОПИВИО? Для простых случаев аргументом может быть тривиальность примера (то есть, отсутствие творческого вклада, а, значит, и защиты авторским правом), но уверенности в этом у меня нет. — Vort (обс.) 10:52, 26 октября 2020 (UTC)
replies: text: :::::* Значит из соображений тривиальности мой пример хорош - он не использует ни одной мнемоники процессора, и являет собой пример, что ассемблер это не узкофункциональный мнемопроцессор, а ассемблер. директивы которого даже сами по себе - могучий инструмент. (А то у вас не ассемблер, а мнемопроцессор какой то выходит) У:ProMiNick 15:10, 26 октября 2020 (UTC)
А https://en.wikipedia.org/wiki/Assembly_language - авторитетный источник? где базовые элементы языка директивы данных? ассемблерные директивы? мой пример как раз на то что у вас отсутствует вовсе. Где энциклопедическое содержимое эквивалентное английской версии. Почему русская версия ассемблера мнемонический обрубыш ассемблера?  У:ProMiNick 17:26, 26 октября 2020 (UTC)

text: Нет, Википедия на другом языке не является авторитетным источником. Там сидят такие же участники, как и у нас тут, и они ничем не более авторитетны (это не только в плане ассемблера, а вообще).

text: Но: а) в английской статье могут быть указаны ссылки на АИ, которые можно использовать; б) статья на другом языке может быть использована как основа для перевода, см. ВП:Перевод статей. Юрий (обс.) 14:37, 26 октября 2020 (UTC)
=== Правила ===
Начну с красной строки, так как это обобщённый ответ на разные сообщения. Правила Википедия:Оформление_статей/Статьи_об_информационных_технологиях#Примеры_кода говорят следующее (цитаты курсивом):
* Примеры кода приводятся чаще всего для иллюстрации подхода конкретного языка, для приведения примеров специфичных для языка конструкций или особенностей — цели не нарушаем.
* Следует избегать написания любого примера, если он не внесёт значимого вклада в фундаментальное понимание энциклопедического содержимого — поэтому, полагаю, пример кода с BMP подлежит удалению, а новый (предлагаемый выше) пример использования директив - неиспользованию, так как энциклопедической значимости они не имеют. Число "примеров программы «Hello, world!» для различных платформ ЭВМ" я бы тоже подсократил, оставив наиболее распространённые среды программирования (но не настаиваю). Коды по микроконтроллерам действительно разношёрстны, можно оставить.
* Код, не относящийся к энциклопедическому содержимому, должен быть перемещён за пределы Википедии. Викиучебник - подходящий проект Викимедиа для кода — У:ProMiNick, вот Вам и ответ, куда можно разместить все Ваши примеры. Там есть инструкции, посмотрите, пожалуйста, сами, с Викиучебником я не работал и не могу подсказать лучше того как там написано.
* Реализации исходного кода должны быть совместимы с лицензиями GFDL и CC-BY-SA (эти лицензии несовместимы с GPL) — в нашем случае это вообще труднодостижимо. Хорошие АИ — печатные книжки и журналы по Ассемблеру, но они все под ВП:КОПИВИО, а большинство ещё и ВП:САМИЗДАТ. Так как мы не ставим тут целью доказывать работоспособность приведённых примеров, а наша задача — это просто иллюстрирование фрагмента кода на языке (подошёл бы и вообще незаконченный фрагмент кода), наверное, компромиссное решение — оставить эти самописные примеры, которые есть, без указания источников.
* Не рекомендуется помещать листинг в шаблоны вида Википедия:Сворачивающиеся блоки — печалька. Но это рекомендация, не требование.
* примеры не должны быть представлены галереей в конце статьи, их нужно использовать в разделах статьи — ещё печалька. Но мне кажется, мы не сможем так это раскидать, эти примеры не относятся к какому-то отдельному разделу.
Давайте сделаем то что можем из описанного. Юрий (обс.) 14:14, 26 октября 2020 (UTC)

text: Самое главное — эта страница правилом не является. У страниц-правил есть определённые отметки. Второе по важности — этот раздел касается статей об алгоритмах. Поэтому использовать его надо, скорее, не как руководство к действию, а как источник вдохновения. — Vort (обс.) 16:07, 26 октября 2020 (UTC)

text: С причинами использования фрагментов кода согласен — они должны рассказывать читателю что-то новое. Правда, формализовать это, скорее всего, непросто. — Vort (обс.) 16:11, 26 октября 2020 (UTC)

text: Рекомендация про сворачивающиеся блоки, скорее, относится к фрагментам, которые иллюстрируют какую-то особенность. Допустим, в тексте идёт описание возможности языка и рядом приводится фрагмент. Конечно, его в блок заворачивать не надо. Или статья про алгоритм и посреди статьи именно этот алгоритм напечатан. Тоже скрывать смысла мало. — Vort (обс.) 16:11, 26 октября 2020 (UTC)

text: С лицензиями и ориссом ситуация самая нехорошая. Согласен, что лучше орисс на грани тривиальности, чем нарушение авторского права. Так как спорить со сторонниками идеального соблюдения авторских прав — занятие не из приятных. Глупая причина, но что есть, то есть. — Vort (обс.) 16:15, 26 октября 2020 (UTC)
replies: text: : Она относится к тематическим руководствам. Сворачиваемые блоки в нашем случае смотрятся лучше, чем несколько страниц сплошного многобувия, и в конце статьи в таком виде им намного лучше, чем раскиданными по тексту.

text: : Можем сделать то что можем. В нашем случае, похоже, мы можем только удалить лишнее. )) Юрий (обс.) 16:19, 26 октября 2020 (UTC)
replies: text: :: Они в конце статьи потому, что иллюстрируют всю статью. Если бы иллюстрировали разделы, то были бы в разделах (хороший пример в статье C Sharp). — Vort (обс.) 16:22, 26 октября 2020 (UTC)
replies: text: ::: Я предлагаю убрать примеры про загрузочный сектор дискеты (явно не тривиально и не относится к "Hello, world!" как таковому) и про файл BMP (это вообще нестандартное использование ассемблера). Пример добавления строки «Hello world!» в код программы лучше убрать в раздел с директивами и сделать несворачиваемым, а в раздел "Типичный формат записи команд" добавить несворачиваемый пример из 2-3 строк просто фрагмента текста программы со всеми атрибутами (метки, мнемокод, параметры, комментарий). А остальной сворачиваемый фрагмент оставить в конце статьи как иллюстрацию. Юрий (обс.) 16:28, 26 октября 2020 (UTC)
replies: text: :::: Я не против таких изменений. Будет скорее лучше, чем хуже. — Vort (обс.) 16:37, 26 октября 2020 (UTC)
replies: text: ::::: Хорошо, займусь. Заодно тут напрашивается немного изменить структуру статьи и желательно поменять картинку, потому что на ней листинг, а не исходный код. Юрий (обс.) 16:44, 26 октября 2020 (UTC)

text: ::::: Внёс оговорённые изменения и переработал статью. Юрий (обс.) 01:34, 28 октября 2020 (UTC)

text: ::::: Забыл добавить: если кто-то захочет переносить удалённые примеры в Викиучебник, то они доступны по этой ссылке. Юрий (обс.) 09:31, 28 октября 2020 (UTC)
Вот, кстати, пример программы на Ассемблере из авторитетного источника: скрин.  Юрий (обс.) 12:50, 28 октября 2020 (UTC)
thread_title:  В примеры 

message: Начну с красной строки, так как это обобщённый ответ на разные сообщения. Правила Википедия:Оформление_статей/Статьи_об_информационных_технологиях#Примеры_кода говорят следующее (цитаты курсивом):
* Примеры кода приводятся чаще всего для иллюстрации подхода конкретного языка, для приведения примеров специфичных для языка конструкций или особенностей — цели не нарушаем.
* Следует избегать написания любого примера, если он не внесёт значимого вклада в фундаментальное понимание энциклопедического содержимого — поэтому, полагаю, пример кода с BMP подлежит удалению, а новый (предлагаемый выше) пример использования директив - неиспользованию, так как энциклопедической значимости они не имеют. Число "примеров программы «Hello, world!» для различных платформ ЭВМ" я бы тоже подсократил, оставив наиболее распространённые среды программирования (но не настаиваю). Коды по микроконтроллерам действительно разношёрстны, можно оставить.
* Код, не относящийся к энциклопедическому содержимому, должен быть перемещён за пределы Википедии. Викиучебник - подходящий проект Викимедиа для кода — У:ProMiNick, вот Вам и ответ, куда можно разместить все Ваши примеры. Там есть инструкции, посмотрите, пожалуйста, сами, с Викиучебником я не работал и не могу подсказать лучше того как там написано.
* Реализации исходного кода должны быть совместимы с лицензиями GFDL и CC-BY-SA (эти лицензии несовместимы с GPL) — в нашем случае это вообще труднодостижимо. Хорошие АИ — печатные книжки и журналы по Ассемблеру, но они все под ВП:КОПИВИО, а большинство ещё и ВП:САМИЗДАТ. Так как мы не ставим тут целью доказывать работоспособность приведённых примеров, а наша задача — это просто иллюстрирование фрагмента кода на языке (подошёл бы и вообще незаконченный фрагмент кода), наверное, компромиссное решение — оставить эти самописные примеры, которые есть, без указания источников.
* Не рекомендуется помещать листинг в шаблоны вида Википедия:Сворачивающиеся блоки — печалька. Но это рекомендация, не требование.
* примеры не должны быть представлены галереей в конце статьи, их нужно использовать в разделах статьи — ещё печалька. Но мне кажется, мы не сможем так это раскидать, эти примеры не относятся к какому-то отдельному разделу.
Давайте сделаем то что можем из описанного. Юрий (обс.) 14:14, 26 октября 2020 (UTC)
replies: text: Самое главное — эта страница правилом не является. У страниц-правил есть определённые отметки. Второе по важности — этот раздел касается статей об алгоритмах. Поэтому использовать его надо, скорее, не как руководство к действию, а как источник вдохновения. — Vort (обс.) 16:07, 26 октября 2020 (UTC)

text: С причинами использования фрагментов кода согласен — они должны рассказывать читателю что-то новое. Правда, формализовать это, скорее всего, непросто. — Vort (обс.) 16:11, 26 октября 2020 (UTC)

text: Рекомендация про сворачивающиеся блоки, скорее, относится к фрагментам, которые иллюстрируют какую-то особенность. Допустим, в тексте идёт описание возможности языка и рядом приводится фрагмент. Конечно, его в блок заворачивать не надо. Или статья про алгоритм и посреди статьи именно этот алгоритм напечатан. Тоже скрывать смысла мало. — Vort (обс.) 16:11, 26 октября 2020 (UTC)

text: С лицензиями и ориссом ситуация самая нехорошая. Согласен, что лучше орисс на грани тривиальности, чем нарушение авторского права. Так как спорить со сторонниками идеального соблюдения авторских прав — занятие не из приятных. Глупая причина, но что есть, то есть. — Vort (обс.) 16:15, 26 октября 2020 (UTC)
replies: text: : Она относится к тематическим руководствам. Сворачиваемые блоки в нашем случае смотрятся лучше, чем несколько страниц сплошного многобувия, и в конце статьи в таком виде им намного лучше, чем раскиданными по тексту.

text: : Можем сделать то что можем. В нашем случае, похоже, мы можем только удалить лишнее. )) Юрий (обс.) 16:19, 26 октября 2020 (UTC)
replies: text: :: Они в конце статьи потому, что иллюстрируют всю статью. Если бы иллюстрировали разделы, то были бы в разделах (хороший пример в статье C Sharp). — Vort (обс.) 16:22, 26 октября 2020 (UTC)
replies: text: ::: Я предлагаю убрать примеры про загрузочный сектор дискеты (явно не тривиально и не относится к "Hello, world!" как таковому) и про файл BMP (это вообще нестандартное использование ассемблера). Пример добавления строки «Hello world!» в код программы лучше убрать в раздел с директивами и сделать несворачиваемым, а в раздел "Типичный формат записи команд" добавить несворачиваемый пример из 2-3 строк просто фрагмента текста программы со всеми атрибутами (метки, мнемокод, параметры, комментарий). А остальной сворачиваемый фрагмент оставить в конце статьи как иллюстрацию. Юрий (обс.) 16:28, 26 октября 2020 (UTC)
replies: text: :::: Я не против таких изменений. Будет скорее лучше, чем хуже. — Vort (обс.) 16:37, 26 октября 2020 (UTC)
replies: text: ::::: Хорошо, займусь. Заодно тут напрашивается немного изменить структуру статьи и желательно поменять картинку, потому что на ней листинг, а не исходный код. Юрий (обс.) 16:44, 26 октября 2020 (UTC)

text: ::::: Внёс оговорённые изменения и переработал статью. Юрий (обс.) 01:34, 28 октября 2020 (UTC)

text: ::::: Забыл добавить: если кто-то захочет переносить удалённые примеры в Викиучебник, то они доступны по этой ссылке. Юрий (обс.) 09:31, 28 октября 2020 (UTC)
Вот, кстати, пример программы на Ассемблере из авторитетного источника: скрин.  Юрий (обс.) 12:50, 28 октября 2020 (UTC)
thread_title:  Правила 

message: В тексте присутствует такая формулировка:
Кроме того, существуют компьютеры, реализующие в качестве машинного язык программирования высокого уровня (Форт, Лисп, Эль-76). Фактически, в таких компьютерах они выполняют роль языков ассемблера.
Если посмотреть примеры программ на этих языках по ссылкам, то у меня лично возникают сомнения, что процессоры поддерживают такие команды на уровне своих инструкций. Предлагаю привести источники или удалить. Юрий (обс.) 01:17, 28 октября 2020 (UTC)
* "далее нескольких прототипов microJava 701 дело не пошло" https://www.osp.ru/cw/2005/09/86657 http://www.chipinfo.ru/chipdir/fam/java/index.htm , но ведь до нескольких прототипов дело дошло - значит архитектура имеет место быть, а java это язык высокого уровня (и кстати java байткод без проблем формируется прямо из под ассемблера - fasmg так может, так что есть как процессоры для java байткода так и ассемблеры, конечно java байткод это не совсем java, но есть однозначное соответствие одного другому) У:ProMiNick 08:24, 28 октября 2020
** Различие в том, что ассемблер занимается трансляцией. Был код операции в виде текста, получился код операции в виде байта в памяти. Для Java же такое не пройдёт. Для начала надо скомпилировать Java в байткод и затем уже можно этот байткод выполнять (интерпретируя или напрямую). — Vort (обс.) 06:40, 28 октября 2020 (UTC)
***
; This example uses a very simple set of macroinstructions to generate
; the basic structures of JVM class file.
; Please refer to "The Java Virtual Machine Specification" for the detailed
; information on this file format.
include 'jclass.inc'
format binary as 'class'
  u4 0xcafebabe                 ; magic
  u2 0,49                       ; minor and major version
  constant_pool
        _Code                   constant_utf8           'Code'
        _init                   constant_utf8           '<init>'
        _main                   constant_utf8           'main'
        _void_arrstr            constant_utf8           '([Ljava/lang/String;)V'
        Test_class              constant_class          _Test
        _Test                   constant_utf8           'Test'
        Object_init             constant_methodref      Object_class,init_method
        Object_class            constant_class          _Object
        _Object                 constant_utf8           'java/lang/Object'
        init_method             constant_nameandtype    _init,_void
        _void                   constant_utf8           '()V'
        System.out              constant_fieldref       System_class,out_field
        System_class            constant_class          _System
        _System                 constant_utf8           'java/lang/System'
        out_field               constant_nameandtype    _out,PrintStream_type
        _out                    constant_utf8           'out'
        PrintStream_type        constant_utf8           'Ljava/io/PrintStream;'
        PrintStream_println     constant_methodref      PrintStream_class,println_method
        PrintStream_class       constant_class          _PrintStream
        _PrintStream            constant_utf8           'java/io/PrintStream'
        println_method          constant_nameandtype    _println,_void_str
        _println                constant_utf8           'println'
        _void_str               constant_utf8           '(Ljava/lang/String;)V'
        Integer_toString        constant_methodref      Integer_class,toString_method
        Integer_class           constant_class          _Integer
        _Integer                constant_utf8           'java/lang/Integer'
        toString_method         constant_nameandtype    _toString,_str_int
        _toString               constant_utf8           'toString'
        _str_int                constant_utf8           '(I)Ljava/lang/String;'
        number                  constant_integer        17
  end constant_pool
  u2 ACC_PUBLIC+ACC_SUPER       ; access flags
  u2 Test_class                 ; this class
  u2 Object_class               ; super class
  interfaces
  end interfaces
  fields
  end fields
  methods
     method_info ACC_PUBLIC, _init, _void                               ; public void Test()
       attribute _Code
         u2 1 ; max_stack
         u2 1 ; max_locals
         bytecode
                aload 0
                invokespecial Object_init
                return
         end bytecode
         exceptions
         end exceptions
         attributes
         end attributes
       end attribute
     end method_info
     method_info ACC_PUBLIC+ACC_STATIC, _main, _void_arrstr             ; public static void main(String[] args)
       attribute _Code
         u2 3 ; max_stack
         u2 2 ; max_locals
         bytecode
                ldc number
                istore 1
           example_loop:
                iload 1
                dup
                imul
                invokestatic Integer_toString
                getstatic System.out
                swap
                invokevirtual PrintStream_println
                iinc 1,-1
                iload 1
                ifne example_loop
                return
         end bytecode
         exceptions
         end exceptions
         attributes
         end attributes
       end attribute
     end method_info
  end methods
  attributes
  end attributes   
так что именно там не пойдет под ассемблером?  взято из примеров fasmg У:ProMiNick 12:29, 28 октября 2020
* Видимо, речь тут об :en:High-level language computer architecture. В частности, :en:Lisp machine и :en:Java processor. Если переписать понятным языком, то можно и оставить. Но намекать на то, что язык высокого уровня может напрямую выполняться на процессоре (без промежуточного представления), думаю, не стоит. — Vort (обс.) 06:36, 28 октября 2020 (UTC)
thread_title:  Спорная формулировка 

message: Коллега Vort, Ваша ссылка содержит, а эта — нет. Получается, список по второй ссылке устарел? Юрий (обс.) 16:32, 18 января 2021 (UTC)
Смотрю, что в одних блоках в статье это используется, а в других — нет. Надо как-то, видимо, привести всё к единому виду. Юрий (обс.) 16:34, 18 января 2021 (UTC)
replies: text: Там ниже написано «For accurate language codes, see complete details in the Pygments document and there are some mappings for some language names which were supported by GeSHi». Чтобы уж совсем убедиться, можно глянуть в исходники (про Pygments сказано вот тут). В самом списке, кстати, языки, а не коды. asm вполне соответствует "Assembly (various)", то есть «всяким ассемблерам». — Vort (обс.) 16:54, 18 января 2021 (UTC)

text: Не используется только в блоке, в котором не сам ассемблерный код, а его формат. Там подсветка и не нужна, так как, грубо говоря, этот блок не скомпилируется. — Vort (обс.) 16:56, 18 января 2021 (UTC)
thread_title:  lang="asm"