Асамблея була моєю другою мовою, відразу після BASIC. Однак, коли я вчився, це був інший час. У My Commodore 64 були доступні інші мови, але якщо ви хотіли, щоб щось здавалося швидким, або хотіли робити кілька справ за один раз, вам потрібно було вивчити мову монтажу та роботу з перервами. Графічна середовище Операційна система (GEOS), яка давала Commodore віконну систему, також була вся збірка. Це був за великим рахунком найкращий API збірки, який я коли-небудь бачив. Це була і єдина платформа, яку я використовував, де можна було викласти свій код. Правильно, ви можете використовувати курсив та різні розміри шрифту - те, що виявилося корисним для читання коментарів.
Я багато дізнався про те, як працював Commodore, але чіп Motorolla мав дуже простий набір коду. Не менш складно тримати менше 255 опкодів окремо один від одного. Я не зміг донести свій досвід роботи з мікросхемою Motorolla 6510 до програмування для Intel 8086. Чіпи та архітектура системи були занадто різними. Я думаю, у мене виникли б ті ж проблеми, коли йти до мікросхеми Motorola 68000 Amiga.
Коротше кажучи, я мушу від усієї думки не погодитися з тим, хто каже, що Асамблея повинна бути хорошою першою мовою. Ось чому:
- У вас немає притаманної структури, немає загального способу руйнування функціональності програми. Це саме те, що робить мови вищого рівня настільки корисними.
- Ви повинні знати марні речі, наприклад, як правильно викликати метод у бібліотеці. Коли бібліотека була створена C, це означає маніпулювати стеком (краще навести все в правильному порядку), але іншою мовою це може означати встановлення регістрів. Це все, про що піклується компілятор чи перекладач - і ви не можете їх оптимізувати.
- Ваш код не можна використовувати на іншій мікросхемі, і, швидше за все, він порушиться з іншою апаратною платформою.
У наші дні мова складання використовується для прискорення певних обмежених дій, коли складене вручну збірка буде швидше, ніж збірка, створена компілятором. Основна структура програми виконана мовою вищого рівня, як C, C ++ і т. Д. Звичайно, програмування складання стане дуже важливим, якщо ви почнете писати компілятори. Хто з нас це робить?