Доброго часу доби, шановні гуру! Виникла необхідність навчитися асемблеру, а працювати в Windows на старому мотлоху в універі не хочеться, тому вибирають ноут зі встановленою Ubuntu 11.04. Підкажіть будь ласка які пакети мені необхідно встановити для написання програм на ассеблере, а також як збирати і компілювати це проги з консолі? Надалі планується зв'язати асемблер з C ++, що для цього потрібно і яку літературу необхідно почитати?
заданий 23 Вересня '11 о 13:47
Вам потрібні binutils. У них є або as86 / ld86, або gas (GNU Assembler). Особливістю асемблера gas є використання ATT синтаксису. Тобто це означає наступне:
З іншого боку, цей синтаксис наближений до синтаксису асемблера на нормальних, "великих" машинах.
У gcc, до речі, кажучи використовується саме ATT синтаксис асемблера, так що дуже рекомендую його вивчити.
Найпопулярніший асемблер для лінукс - nasm. Ставиться apt-get install nasm. Книг по асемблеру в Лінуксі мало. Хороша книга по-англійськи Sivarama P. Dandamudi. Guide to Assembly Language Programming in Linux. Пошукай в інтернеті. Там описано, як працювати в насме, як компілювати, структура програми, синтаксис, а також загальні теоретичні поняття про роботу з пам'яттю, регістри процесора і т.д.
відповідь дан 23 Вересня '11 о 14:27
А відладчик який можете порадити? - Єгор Соколов 23 Вересня '11 о 18:56
gdb - skegg 23 Вересня '11 о 21:27
Як варіант є можливість використовувати вбудований асемблер GCC. приклад
відповідь дан 23 Вересня '11 о 16:33
Так, але все ж краще спочатку освоїти "самостійний" асемблер, а вже потім переходити до вбудованого. - skegg 23 Вересня '11 о 17:47
Варіант дуже хороший, обов'язково вивчу і його, але спочатку основи - Єгор Соколов 23 Вересня '11 о 19:17
Вельми корисний допоміжний інструмент для вивчення асемблера - gcc (так, Сі компілятор) з ключем -S виводить асемблерний код Сі програми. - avp 23 Вересня '11 о 21:08