NASM (Intel) против синтаксиса AT&T: каковы преимущества?

Я просматриваю документацию процессора Intel и одновременно пишу базовый код сборки. У меня оба nasm и as (GAS) на моем сервере, и я понимаю основные различия обоих ассемблеров.

в перспективе:

  • сосредоточившись на какой из этих синтаксис идея получше?
  • каковы преимущества и недостатки этого синтаксиса?
  • которое одно более широко использовано и понял?

Я также был бы признателен за любые предпочтения, которыми вы могли бы поделиться со мной.

2 ответов


  • сосредоточившись на какой из этих синтаксис идея получше?

зависит от ваших проектов. Не каждый компилятор допускает оба вида синтаксиса. Если вам нужно иметь код, собранный на других платформах Intel, вероятно, лучше, даже после нескольких лет опыта работы с обоими мне лично нравится Intel больше, но это небольшая разница, и это не имеет значения для меня.

  • каковы преимущества и недостатки этих синтаксис?

в синтаксисе AT&T есть немного много %, даже больше, если вам нужно использовать макросы. OTOH я предпочитаю источник, место назначения заказ, но это личный вкус, другие могут предпочитать его, наоборот, потому что он напоминает порядок записи оператора присваивания в C (и многое другое).

Я Intel синтаксис являются непристойности, как DWORD PTR, где в AT&T небольшое добавление l вполне достаточно. Точное написание мнемоника отличается во многих случаях, я нахожу AT&T более логичным, в то время как, конечно, Intels way является стандартом. Режимы адресации в Intel несколько более удобочитаемы.

  • какой из них более широко используется и понятен?

Я считаю, что AT&T больше используется из-за вездесущности linux на встроенных платформах, где ассемблер гораздо чаще используется в других программных проектах. Есть больше ассемблеров, которые понимают синтаксис Intels, это много верно, но я считаю, что gcc/gas больше используется в области, где ассемблер имеет значение/полезен .


сосредоточение внимания на том, какой из этих синтаксисов лучше?

в зависимости от того, что вам удобно работать с

каковы преимущества и недостатки этого синтаксиса?

для меня: Преимущества: - Intel: читаемый - AT&T: больше платформ (так как " as " доступен на многих платформах) Ущерб: - Intel: многие ассемблеры, но очень мало общего сходства, многие функции ассемблера специфичны - AT&T: он добавляет + / - к твои глаза!--2-->

какой из них более широко используется и понятен?

синтаксис AFAIK Intel более широко используется. Вы можете проверить количество ассемблеров, поддерживающих Intel vs AT & T.