2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Программирование на ассемблере.
Сообщение26.12.2011, 12:15 
Заслуженный участник


26/07/09
1559
Алматы
Странные вещи происходят. В празделе "Программирование" все темы, посвященные программирование на ассемблере, аккуратненько так перемещать стали в "Hardware". Это коснулось даже тем, к железу прямого отношения не имеющих, например, тем про консольный ввод-вывод чисел в dos'е, про строковые алгоритмы и т.д. Разумно ли это? Не, если это (зачем-то понадобившиеся) экстренные меры по выравниванию дисбаланса в количестве тем между этими разделами, то OK, но пока ситуация неясна. Так в чем же дело?

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 14:56 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Согласно текущей классификации раздела CS:

maxal в сообщении #93749 писал(а):
Раздел "Программирование" предназначен для обсуждения особенностей программирования и реализаций алгоритмов на языках общего назначения таких как C/C++, Pascal/Delphi, Java, C#, Perl, Python и т.д., а также сопутствующих технических аспектов использования внешних библиотек. Для обсуждения алгоритмических аспектов существующих библиотек рекомендуется использовать раздел "Околонаучный софт".

Раздел "Hardware" предназначен для обсуждения деталей компьютера и других электронных устройств, а также низкоуровневого программирования.


Вопросы изменения данной классификации, разумеется, обсуждаемы.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 15:48 
Заслуженный участник


26/07/09
1559
Алматы
В тоже время в самом разделе CS подраздел Hardware аннотирован как "Обсуждение работы компьютера и его комплектующих" (что, в-принципе, логично). Заметьте, новички, ищущие помощи в программировании на ассемблере, все-равно будут создавать asm-темы скорее всего в разделе Программирование, и их придется перемещать (да, это не проблема, после того, что творится в математических разделах. :) ). Но раньше ведь ассемблерные темы спокойно обсуждались в программировании, и ничего...

В общем, призываю ещё раз подумать над этими нововведениями. Например, если перемещение тем неизбежно, то может быть стоит синхронизировать вашу цитату с официальным пояснением, т.е. изменить аннотацию раздела Hardware, явно указав, что программирование на ассемблерах (низкоуровневое программирование) обсуждается именно здесь.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 16:47 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Circiter в сообщении #520081 писал(а):
Например, если перемещение тем неизбежно, то может быть стоит синхронизировать вашу цитату с официальным пояснением, т.е. изменить аннотацию раздела Hardware, явно указав, что программирование на ассемблерах (низкоуровневое программирование) обсуждается именно здесь.


Да, аннотация раздела Hardware действительно немного неточная, это будет исправлено.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 17:39 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Circiter в сообщении #520008 писал(а):
Это коснулось даже тем, к железу прямого отношения не имеющих, например, тем про консольный ввод-вывод чисел в dos'е, про строковые алгоритмы и т.д.

Я попытался на своём Sparc запустить ассемблерную программу с консольным вводом-выводом чисел в dos'е... и не нашёл dos'а. Не говоря уже о том, "куда это пихать" - чем компилировать?

Доктор, что я делаю не так? :-)

Может, всё-таки согласитесь, что любая строчка на ассемблере x86 имеет отношение по крайней мере к такому железу, как x86?

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 17:58 
Заслуженный участник


09/08/09
3438
С.Петербург
Munin в сообщении #520140 писал(а):
Может, всё-таки согласитесь, что любая строчка на ассемблере x86 имеет отношение по крайней мере к такому железу, как x86?
Ну и что?
Предлагаете все темы по программированию под Windows тоже в Hardware размещать?

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 19:07 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Граница разделов проходит не по линии "программирование - не программирование", а по линии "программирование высокого уровня - низкого уровня". В основном в первом случае можно не задумываться об особенностях архитектуры конкретной машины, а концентрироваться на собственно содержательной стороне. Во втором случае, как мне кажется (хотя я могу ошибаться) знание архитектуры процессора является необходимым.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 19:29 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Maslov в сообщении #520149 писал(а):
Предлагаете все темы по программированию под Windows тоже в Hardware размещать?

По-моему, "hardware" - железо. x86 - это hardware часть платформы Wintel, windows - software часть.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 20:34 
Заслуженный участник


09/08/09
3438
С.Петербург
PAV в сообщении #520181 писал(а):
Граница разделов проходит не по линии "программирование - не программирование", а по линии "программирование высокого уровня - низкого уровня". В основном в первом случае можно не задумываться об особенностях архитектуры конкретной машины, а концентрироваться на собственно содержательной стороне. Во втором случае, как мне кажется (хотя я могу ошибаться) знание архитектуры процессора является необходимым.
В основном - да. Но у нас тут были темы об оптимизации вычислительных алгоритмов, в которых вовсю обсуждались такие низкоуровненвые вещи, как число тактов на команду, размер кэша процессора и т. п.

Munin в сообщении #520195 писал(а):
По-моему, "hardware" - железо. x86 - это hardware часть платформы Wintel, windows - software часть.
Я просто хотел сказать, что привязка конкретной программной среды к определенному типу железа -- еще не повод относить соответствующие темы в раздел Hardware.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 20:56 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Maslov в сообщении #520233 писал(а):
Я просто хотел сказать, что привязка конкретной программной среды к определенному типу железа -- еще не повод относить соответствующие темы в раздел Hardware.

А при чём здесь конкретная программная среда? Речь о конкретных инструкциях и регистрах x86. Или вы думаете, что на Sparc тоже можно написать mov eax, ebx?

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 21:10 
Заслуженный участник


09/08/09
3438
С.Петербург
Munin в сообщении #520251 писал(а):
Или вы думаете, что на Sparc тоже можно написать mov eax, ebx?
Нет, не думаю. И что?
По-Вашему, все, что можно написать на x86 и нельзя написать на Sparc, относится к Hardware?

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 22:27 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Maslov в сообщении #520263 писал(а):
По-Вашему, все, что можно написать на x86 и нельзя написать на Sparc, относится к Hardware?

По-моему, то, что непосредственно использует x86 (в частности, его программную архитектуру), относится к Hardware. В других случаях надо посмотреть, почему это нельзя написать на Sparc...

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение26.12.2011, 23:54 
Заслуженный участник


15/05/05
3445
USA
Я лично понимаю термин "низкоуровневое программирование" как программирование драйверов, управление внешними устройствами через порты или специальные платы и т.п. Хотя сейчас это все программируется на C, а порой и на VBasic. Т.е. это вовсе не вопрос уровня языка.

P.S. По аналогии со стеком протоколов OSI: чем ближе к железу, тем уровень ниже.

P.P.S. А ведь есть еще ассемблерные вставки в программах на C++/Delphi...

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение27.12.2011, 17:09 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Есть языки, позволяющие программировать и на высоком, и на низком уровне (C). Есть языки, позволяющие программировать только на высоком уровне (Prolog). Есть языки, позволяющие программировать только на низком уровне (ассемблеры). Так что частично это всё-таки вопрос языка.

Программирование драйверов - это одна из задач, которая может быть решена только низкоуровневым программированием (или требует использования низкоуровневого программирования). Многие задачи низкоуровневого программирования не требуют, такие как консольный ввод-вывод, строковые алгоритмы... Но их можно решать низкоуровневыми средствами, хотя бы в качестве упражнения, и когда они решаются на ассемблере, именно это и происходит. То есть, низкоуровневое программирование не привязано жёстко и к задачам.

 Профиль  
                  
 
 Re: Программирование на ассемблере.
Сообщение27.12.2011, 17:14 


21/03/06
1545
Москва
По-моему то, что программирование на асме требует знания аппаратной части целевой системы, а программирование на бэйсике - не требует (хотя есть embedded basic :D ), а на Си/Си++ - может требовать, а может не требовать, все это ИМХО - вопросы именно программирования. Ну какая разница, под Java-машину писать, под конкретный проц, или, к примеру, браузер (java-script, html и т.д.). Есть весьма навороченные ассемблеры с элементами ООП :D кстати.

Вопросы железа - это как именно устроены регистры, на каких элементарных вентилях построено АЛУ, сколько тепла выделяется МП в режиме сна, какие напряжения питания и потребляемый ток у МП, сколько wait-stat'ов надо в конце концов, чтобы прошла команда записи во внешнюю EEPROM и т.п.

Хотя, конечно, чтобы написать что-то стоящее на асме, нужно хорошо знать аппаратную часть, точнее асм на каком-то уровне уже не отделим от железа (ассемблерные мнемоники->двоичные коды команд и данные->логические уровни->логические вентили->схемотехника логических вентилей). Но по-моему на этом форуме до такой глубины эту тематику не копают.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Модераторы: cepesh, Forum Administration



Кто сейчас на конференции

Сейчас этот форум просматривают: CDDDS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group