maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
RAMZAY Можно освоить и то и другое. Главное знать принципы - а синтаксис пустяки. Я с интел на ат&т очень быстро переучился
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
farwayer |
|
Темы:
12
Сообщения:
181
Участник с: 30 апреля 2010
|
RAMZAY Natrio и maisvendoo правильно говорят: синтаксис - дело десятое. Намного важнее понимать архитектуру процессора: регистры, наборы команд, виды адресаций, таблица прерываний и т.д. Это огромный пласт информации, даже если не касаться предсказаний переходов, устройства кэша, микрокода и еще многих интересных, но сложных вещей. Но, фломастеры-фломастерами, а у меня АТ&Т синтаксис не нравится категорически своей избыточностью: $ перед числами, % перед регистрами, ненужные постфиксы и префиксы к командам. А addl -0x40(%ebx,%ecx,0x4),%eax add eax, [ebx+ecx*4-0x40] Из компиляторов мне нравится fasm. Минимализм в действии. А его макросы способны творить чудеса :) Из ресурсов могу посоветовать http://wasm.ru. Правда, он сейчас в ремонте, но форум вполне себе функционирует и есть раздел для новичков и по asm в unix. Немного офтопа: Приехала тут на днях отладочная платка с ARM на борту (STM32). После CISC x86 архитектуры, где скоро будет команда "mkcoffee", RISC заставляет моё сознание забиться в самый темный уголок и плакать. Но, блин, красиво. Особенно условные команды. |
RAMZAY |
|
Темы:
43
Сообщения:
448
Участник с: 21 мая 2011
|
посовещавшись с препадом,послушав вас и подумав,решил выбрать nasm(intel),буду с ним разбираться в основах,судя по документации он тоже поддерживает макросы. Еще возник вопрос:в чём разница между fasm и nasm ? Они ведь оба поддерживают макросы. |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
Я, конечно, отстал от жизни, но поясните мне смысл макрухи. Не проще ли сделать подпрограмму и вызывать ее? Или компактный машинный код уже не в моде? |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Какой ассемблер выбрать для изучения? - статья хоть и очень старая, но почитать можно. + Linux Assembly website
Ошибки не исчезают с опытом - они просто умнеют
|
farwayer |
|
Темы:
12
Сообщения:
181
Участник с: 30 апреля 2010
|
RAMZAY Да по мелочам различаются. Например, nasm может добавлять отладочную информацию, что иногда бывает полезно. Зато fasm'у не нужен линковщик: он может сам собирать исполняемый elf, когда как после nasm нужно еще прогонять ld или gcc. Макроязык у fasm намного более развит, но проявляться это начинает на более-менее больших проектах (KolibriOS и MenuetOS, как пример - две операционки полностью написанные на ассемблере). Поддержка инструкций у обоих одинаково хороша. fasm мне нравится своей внутренней простотой. Там нет ни одного лишнего символа. Как сказал один товарищ: "Nasm разрабатывают толковые ребята, но fasm написал один гениальный человек" :) Aivar Так одно другому не мешает. Макросы нужны, чтобы упростить некоторые вещи. Пример. ARM с командами thumb2. Нельзя поместить 32-битное значение сразу в регистр одной инструкцией. Сначала помещается младшее полуслово в младшую часть регистра, потом старшее полуслово в старшую. Пишется макрос macro mov32 reg, val { movw reg, val and 0xffff movt reg, (val shr 16) and 0xffff } |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
farwayer, понятно. Просто в наше время речь о макроассеблере как бы не шла. ) |
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
AivarЭ... это когда ж такое время было? Где-то 1954? Или имеется в виду, что речь не шла, поскольку макровозможности - это само собой разумеется? |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
AivarПодпрограмма - это многократно выполняемый участок машинного кода, оформленный особым образом. А макроопределение - средство формирования исходного текста по определенным правилам, что несколько отличается от подпрограммы. Как-то так
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
akoropНет, конечно. 80-90-е. Наиболее вменяемый под Speccy ALASM хоть и именовался макроассемблером, но в документации ничего не говорилось об использовании макросов и, если верить SpeccyWiki их поддержка была добавлена в 1999 году, когда я уже "завязывал". |