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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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