Задать вопрос
daylight_warrior
@daylight_warrior

Есть ли смысл изучать Ассемблер?

С учетом быстрого развития информационных технологий такие низкоуровневые языки как Ассемблер используются все реже. Там, где нужна хорошая скорость работы используют С, т.к. он один из самых быстрых языков высокого уровня. Так есть ли смысл при таких тенденциях изучать Ассемблер?
  • Вопрос задан
  • 9162 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 8
sajgak
@sajgak
для веб-разработки? Нет
для микроконтроллеров с жестко ограниченными регистрами памяти? Да
Ответ написан
Комментировать
Lure_of_Chaos
@Lure_of_Chaos
Программист
Вы хотите глубже понимать устройство и работу компьютера, на низком уровне?
Вам нужно добиваться суперпроизводительности?
Вы хотите помогать компилятору генерировать производительный код?
А может быть, Вы хотите улучшить компилятор или написать свой?

Тогда ДА.

Вы ещё не изучили ни один язык высокого уровня?
Вас не волнует, как работает написанный Вами код?
Вас не волнует качество написанного Вами кода?
Вы не собираетесь писать системные программы, драйвера?

Тогда НЕТ, не стоит (но всё равно, было бы полезно).
Ответ написан
Комментировать
Vladson
@Vladson
Изучать — Нет.
Освоить небольшую базу — не помешает.
Ответ написан
Комментировать
TheHorse
@TheHorse
Смысл для чего? Если хотите стать лучше — да, есть. Если просто хотите больше зарабатывать — забейте, учите php, java, .Net, Objective-C… Это легче.

Изучие ассемблера поможет лучше понять, как работают ваши же программы.
Ответ написан
Комментировать
@Viacheslav78
V
Литература по Debugging, Vulnerability Analysis, Asm, ARM.

Debugging:
Bill Blunden. Software Exorcism. A Handbook for Debugging and Optimizing Legacy Code.
Brian W. Fitzpatrick. Debugging Teams. Better Productivity through Collaboration.
Butcher Paul. Debug It. Find, Repair, and Prevent Bugs in Your Code.
Debugging Linux Systems with GNU GDB.
Eric Lawrence. Debugging with Fiddler. The complete reference from the creator of the Fiddler Web Debugger.
Mario Hewardt, Daniel Pravat. Advanced Windows Debugging.
Mario Hewardt. Advanced .NET Debugging.
Matthew A. Telles, Yuan Hsieh. The Science of Debugging.
Norman Matloff. Peter Jay Salzman. THE ART OF DEBUGGING WITH GDB, DDD, AND ECLIPSE.
Rajaram Regupathy. Bootstrap Yourself with Linux-USB Stack. Design, Develop, Debug, and Validate Embedded USB Systems.
Richard Foley. Pro Perl Debugging. From Professional to Expert.
Richard H. Carver, Kuo-Chung Tai. Modern Multithreading Implementing, Testing, and Debugging Multithreaded Java and C++ & Pthreads & Win32 Programs.
Richard Stallman, Roland Pesch, Stan Shebs, et al. Debugging with GDB - the GNU Source-Level Debugger.
Steve Maguire. Debugging the Development Process.
Tarik Soulami. Inside Windows Debugging. A Practical Guide to Debugging and Tracing Strategies in Windows.
Thorsten Grötker, Ulrich Holtmann, Holger Keding, Markus Wloka. The Developer's Guide to Debugging.
Cristina Cifuentes. Reverse Compilation Techniques.

Vulnerability Analysis:
Abraham Ghebrehiwet Ghebremedhin. Combining Static Source Code Analysis and Threat Assessment Modeling For Testing Open Source Software Security.
Adam Loe Doup´e. Advanced Automated Web Application Vulnerability Analysis.
Antti Vayrynen. Finding third-party components with binary analysis.
David B. Dewey. FINDING AND REMEDYING HIGH-LEVEL SECURITY ISSUES IN BINARY CODE.
David Brumley. Analysis and Defense of Vulnerabilities in Binary Code.
Fabian Yamaguchi. Automated Extraction of API Usage Patterns from Source Code for Vulnerability Identification.
Fabian Yamaguchi. Pattern-Based Vulnerability Discovery.
Falko Strenzke. Efficiency and Implementation Security of Code-based Cryptosystems.
Francisco Jose Marques Vieira. Realistic Vulnerability Injections in PHP Web Applications.
George Perera. PURPOSEFULLY MANUFACTURED VULNERABILITIES IN U.S. GOVERNMENT TECHNOLOGY MICROCHIPS. RISKS AND HOMELAND SECURITY IMPLICATIONS.
Guidelines for Implementation of REST.
Gustav Ahlberg. Generating web applications containing XSS and CSRF vulnerabilities.
Jay-Evan J. Tevis. AUTOMATIC DETECTION OF SOFTWARE SECURITY VULNERABILITIES IN EXECUTABLE PROGRAM FILES.
Jing Xie. INTERACTIVE PROGRAMMING SUPPORT FOR SECURE SOFTWARE DEVELOPMENT.
Mario Heiderich. Towards Elimination of XSS Attacks with a Trusted and Capability Controlled DOM.
Martin Johns. Code Injection Vulnerabilities in Web Applications - Exemplified at Cross-site Scripting.
Prateek Saxena. Systematic Techniques for Finding and Preventing Systematic Techniques for Finding and Preventing.
Rami M. F. Jnena. Modern Approach for WEB Applications Vulnerability Analysis.
Richard Wartell. REWRITING X86 BINARIES WITHOUT CODE PRODUCER COOPERATION.
Runar Moen. Creating secure software.
Ryan Dewhurst. Implementing Basic Static Code Analysis into Integrated Development Environments (IDEs) to Reduce Software Vulnerabilities.
Sidney E Valentine. PLC Code Vulnerabilities Through SCADA Systems.
Sooel Son, B.S., M.S. Toward Better Server-side Web Security.
SRUTHI BANDHAKAVI. AUTOMATED DETECTION OF INJECTION VULNERABILITIES IN WEB APPLICATIONS.
Steven Craig Hanna Jr. Attacks on Emerging Architectures.
Thomas Hofer. Evaluating Static Source Code Analysis Tools.
Tyler Bletsch. Code-Reuse Attacks. New Frontiers and Defenses.
Wolf-Steffen Rodiger. Merging Static Analysis and Model Checking for Improved Security Vulnerability Detection.
Yuchen Zhou. Improving Security and Privacy of Integrated Web Applications.

Assembler:
Blum Richard. Professional Assembly Language.
Cavanagh Joseph. X86 Assembly Language and C Fundamentals.
Duntemann Jeff. Assembly Language Step-by-Step. Programming with Linux.
Irvine K.R. Assembly Language for x86 Processors. Seventh Edition.
Irvine K.R. Assembly Language for x86 Processors. Sixth Edition.
Kusswurm D. Modern X86 Assembly Language Programming. 32-bit, 64-bit, SSE, and AVX.
Leiterman J.C. 32-64-Bit 80x86 Assembly Language Architecture.
Neveln Bob. Linux Assembly Language Programming.
Rose Chris. Assembly Language Succinctly.
Seyfarth Ray. Introduction to 64 Bit Intel Assembly Language Programming for Linux.
Hyde R. The Art of Assembly Language (Second Edition).
Dandamudi S.P. Guide to Assembly Language Programming in Linux.

ARM:
Holt W. ARM Assembly Language. Fundamentals and Techniques.
Langbridge J.A. Professional Embedded ARM Development.
Магда Ю.С. Программирование и отладка C C++ приложений для микроконтроллеров ARM.
Tay Raymond. OpenCL Parallel Programming Development Cookbook.
Mahout Vincent. Assembly Language Programming ARM Cortex-M3.
Sloss Andrew N. Symes D. Wright C. ARM System Developers Guide. Designing and Optimizing System Software.
Valvano J.W. Embedded Systems. Introduction to Arm Cortex™-M Microcontrollers. Volume 1.
Yui J. The Definitive Guide to ARM Cortex-M0 and Cortex-M0+ Processors.
Ответ написан
@nnnice
Асм - это хорошая база для тех, кто хочет разобраться в тонкостях взаимодействия с микроконтроллерами и машиной в целом. В нашей стране это не особо популярно: дровами никто не занимается, равно как и разработкой чего-то стоящего отечественного. Почти все из-за бугра. НО! Если вы все же хотите углубиться в тонкости работы этого языка, я очень рекомендую просмотреть перечень книг для начинающих. Возможно, вы продвинетесь и будете востребованным заграницей специалистом, а может и нет. Тут уж от вас зависит. От себя порекомендовал бы еще видео-туториалы. Тоже неплохая и наглядная штука. Надеюсь, эти материалы смогут вам помочь.
Ответ написан
Комментировать
@Masterkey
от С до асма полшага. Если вы уже в С, то вы будете шататься туда-сюда каждый день.
Если вы на пхп, то собсно лучше повысьте навыки владения фреймворками и цмс — так будет продуктивнее для вас как для человека, забатывающего ремеслом.

Смысл изучать есть всегда, не смотря на то куда ломится вся индустрия.
Ответ написан
В любом случае Асм не помешает. А вот стоит ли его изучать поверхностно или углубленно зависит от сферы вашей деятельности.
А если даже сфера деятельности далека от Асм, но вам понравилось его изучать (мало ли, регистры понравились), то пожалуйста. А ведь кто знает, чем вы будете заниматься через 1-3-5-10 лет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы