Сборка была моим вторым языком, сразу после Бейсика. Однако, когда я учился, было другое время. В моем Commodore 64 были доступны другие языки, но если вы хотели, чтобы что-то казалось быстрым, или хотели делать больше, чем одно за раз, вам нужно было изучать ассемблер и как работать с прерываниями. Операционная система графической среды (GEOS), которая дала Commodore систему управления окнами, также была в сборе. По большому счету это был лучший сборочный API, который я когда-либо видел. Это была также единственная платформа, которую я использовал, где вы могли стилизовать свой код. Правильно, вы можете использовать курсив и разные размеры шрифта - что оказалось полезным для чтения комментариев.
Я многое узнал о том, как работает Commodore, но у чипа Motorolla был очень простой набор кодов операций. Не так сложно хранить менее 255 кодов операций отдельно друг от друга. Я не смог передать свой опыт использования чипа Motorolla 6510 программированию для Intel 8086. Чипы и архитектура систем были слишком разными. Думаю, у меня были бы те же проблемы с переходом на чип Amiga Motorolla 68000.
Короче говоря, я должен искренне не соглашаться со всеми, кто говорит, что Ассамблея должна быть хорошим родным языком. Вот почему:
- У вас нет встроенной структуры, нет общего способа нарушения функциональности приложения. Это то, что делает языки более высокого уровня настолько полезными.
- Вы должны знать бесполезные вещи, например, как правильно вызывать метод в библиотеке. Когда библиотека была создана C, это означает манипулирование стеком (лучше все расположить в правильном порядке), но на другом языке это может означать установку регистров. Все это заботится компилятором или интерпретатором - и вы не можете их оптимизировать.
- Ваш код не может быть использован на другом чипе и, скорее всего, сломается с другой аппаратной платформой.
В наши дни язык ассемблера используется для ускорения определенных конечных действий, когда сборка, созданная вручную, будет быстрее, чем сборка, созданная компилятором. Основная структура приложения выполняется на языке более высокого уровня, таком как C, C ++ и т. Д. Конечно, программирование на ассемблере станет очень важным, если вы начнете писать компиляторы. Сколько из нас это делает?