2016-06-06 7 views
2

Есть ли несколько стилей синтаксиса сборки ARM, как и для x86? Если есть, какая поддержка для каждого в разных цехах инструментов?Стили синтаксиса сборки ARM

+1

Afaik intel/at & t двухсторонний синтаксис не имеет кулона. Я знаю только один синтаксис ARM/операнд. Я то есть то, что вы имели в виду. – gilgamash

+0

Довольно много, что было моим вопросом. –

+1

Но это был не только порядок операндов. Например, при & t это намного более подробный и менее подверженный интерпретации ошибок человека, но сложнее читать между строк, чтобы понять ваш код в целом (или, по крайней мере, для меня). Я пытаюсь понять сборку ARM, но для меня это очень забавно, потому что у каждой инструкции есть так много деталей. –

ответ

3

Язык ассемблера определяется ассемблером, программным обеспечением, которое его считывает. Если в мире существует более одного ассемблера, то почти по определению существует более одного языка ассемблера. Машинный код, очевидно, определен поставщиком чипа/ядра, и для ассемблера он будет полезен, он должен это сделать. Но вход для ассемблера - это то, что они хотят. В целом нет правил. Там может быть кто-то, кто создал стандарт здесь и там для цели, но в целом нет правила. В лучшем случае это будет то, что мой ассемблер принимает, - это то, что я должен сделать, чтобы мой компилятор производил и/или работал параллельно, и создавал язык ассемблера как путь связи между ними.

Поставщик чипов/основных производителей, чтобы сделать любые продажи необходимыми документами для их набора инструкций. В рамках этого они, как правило, определяют язык ассемблера в том же документе. Аналогичным образом, чтобы этот продукт преуспел, должны быть инструменты, начинающиеся с ассемблера. Таким образом, в их интересах проявить себя либо самим инструментом, либо инструментом, созданным кем-то. И в идеале их документация соответствует.

GNU хорошо известен тем, что использует язык ассемблера, определенный в документации поставщиков процессоров, и используется инструментами поставщиков чипов/ядра, если таковые имеются. Это произошло для ARM более 10 лет назад, по сути, с самого начала газового порта ARM. И с aarch64 они даже несовместимы с собой. Таким образом, можно ожидать, что в нем будет по крайней мере два разных продукта: инструменты для разработчиков чипов и основных инструментов и инструменты gnu, а затем, если есть другие люди, создающие набор инструментов, они либо хотят быть совместимыми с чем-то там, либо они не любят что-то там и специально хотят что-то добавить или сделать другим.

Короткий ответ, да, ожидается, что для каждого ассемблера для цели может быть другой язык ассемблера, где-то между тонким и суровым.

Смежные вопросы