Навчання програмуванню в зборах - Корисні ресурси [закрито]


10

Виходячи з попередньої теми, мене зацікавило трохи вивчити програму складання. Не стільки для того, щоб хотіти запрограмувати корисні програми, а лише відчути програмування на низькому рівні, щоб краще зрозуміти, що відбувається.

Чи може хтось порекомендувати які-небудь книги чи інтернет-ресурси для початківців?

Дякую.


Ця книга доктора Пола Картера була досить хорошою для x86 ASM.
jonescb

Відповіді:


5

Рекомендована книга: Мовлення програмування мистецтва асамблеї .

Мені також сподобався цей сайт . Приємного вступу до складання програмування! Я використовував цей сайт як орієнтир під час навчання на курсах мікропроцесорів та мікроконтролерів.


Відмінно ... дякую. Не цікаво, наскільки інтуїтивно ви зрозуміли, що її вивчаєте порівняно з типовою сучасною мовою? Моя історія 6 ​​місяців c # (у промисловості) і приблизно в той же час C ++ (у моїй спальні :))
Даррен Янг

1
Я зіткнувся зі складанням програми монтажу (я ще студент), і, як ви сказали у своєму запитанні, було корисно знати, як працюють вбудовані системи і все. І все ж, порівняно з мовами високого рівня (сучасними, як ви кажете), я вважаю це не дуже корисним. Знаєте, ніколи не збираюся використовувати це в моїй галузі - веб-розробка. :)
ykombinator

2

Це академічна вправа, чи ви збираєтесь використовувати мову монтажу, яку ви вивчаєте? Це досить спеціалізовані речі. Оптимізація компілятора стала настільки хорошою, що навіть щось на зразок високоефективного жорсткого диска зазвичай має близько 1% від його кодової бази, записаної в асемблері. Піднімаючись вниз по ланцюгу харчування до 4-бітових або 8-бітових процесорів, ви побачите, що використовується набагато більше мови для складання.

Якщо ви дійсно хочете перейти на мову збирання, виберіть процесор, який має гарний набір інструкцій. Я колишній співробітник ARM, тому я, напевно, упереджений, але я виявив, що набір інструкцій ARM був особливо легким для засвоєння - мені вдалося написати ефективний фільтр FIR в асфальті на третій день в компанії. У наші дні партнери з напівпровідників ARM доставляють близько мільярда ядер ARM в квартал, тому знайти компанію, яка бажає використовувати ваш досвід ARM ASM, досить легко.

Є багато плат ARM eval, доступних приблизно за 50 доларів, щоб випробувати свій код - схоже, ARM Cortex M3 стане дуже популярним. Він використовує набір інструкцій ARM Thumb2, який є дещо незрозумілішим, ніж звичайний код ARM32, але при цьому досить легкий і дуже потужний.

Ця маленька дошка виглядає дуже круто, за 80 євро: http://www.olimex.com/dev/stm32-103stk.html


Це # s чисто академічний / самонавчання. Я хотів би краще зрозуміти управління пам'яттю низького рівня, а також мови вищого рівня.
Даррен Янг

1

В основному, в сенсі програмування монтажу, потрібно спочатку знати базову архітектуру, потім на відповідній мові, наприклад, з мікроконтролерами PIC, ви можете використовувати компілятор, який надається, і мову. Я використовую цей сайт для посилань на підручники мікроконтролера PIC.


1

Я завжди вважав, що найскладнішою частиною був привіт світ, який, як правило, є лише тривіальною функцією збирання, яка називається з вищого рівня мови, як додавання двох чисел. Після того, як ви пройдете цю перешкоду, ви просто додасте до свого репертуару інструкції та psuedo-ops (наприклад, визначення даних).

Я б другий geekbrit, хоча я ніколи не використовував ARM. Така мінімальна архітектура була б не тільки легшою, але й могла б наблизитися до законної - протистоїть лише дидактичній меті.


0

У мене є набір інструкцій, асемблер та симулятор, з деякими уроками, які були створені саме для цієї мети. Я ще не маю відгуків про те, наскільки добре чи погано я це зробив, але його там, дайте йому 15 хвилин чи півтори години, щоб побачити, чи він вас чомусь вчить. http://github.com/dwelch67/lsasim Після цього у мене є деякі тренажери для набору основних інструкцій, які ви можете спробувати, прості, без надмірностей, повинні працювати де завгодно, у вас є компілятор C тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.