Показать сообщение отдельно
Старый 31.01.2012, 12:52   #3   
IGBT
 
Аватар для Pengvin
 
Сообщений: 535
Регистрация: 09.10.2005

Pengvin вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
НО! Надо понимать ассемблерный код, и знать устройство процессора, под который ты программируешь.
Надо отделить мух от котлет:
1) Устройство процессора - как часть computer science. Надо знать почти всем. Большинство современных архитектур похожи. Тем более надо знать хотя бы, что такое стек и как вызов метода происходит, даже если на .Net пишешь, чтобы не удивляться, когда при рекурсии получишь StackOverflowException.
2) ассемблер - как язык мнемоники. А нужен ли его действительно знать? Я например, имея весь скромный опыт работы и программерства, писал низкоуровневые программы под x86, 8051, AVR, PIC24, ARM (Cortex M3). И асм я знал только у первых двух архитектур (ибо похожи). Зачем мне знать весь зоопарк мнемоник и регистров состояния? Причем собственно функциональные блоки у всех процессоров похожи.
3) вот правда интересно в какой задаче, кроме спортивного программирования, понадобилось участок переписывать на асме? Или это было в бородатые годы, когда кеши были маленькие, а компьютеры большими?
Сейчас в большинстве случаев под x86 достаточно вынести тяжелые вычисления в отдельный поток и приделать прогресс бар. Или обрабатывать в несколько потоков.
  Ответить с цитированием