NASM (Intel) против синтаксиса AT & T: в чем преимущества? - PullRequest
6 голосов
/ 18 декабря 2011

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

В долгосрочной перспективе:

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

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

Ответы [ 2 ]

5 голосов
/ 18 декабря 2011
  • Сосредоточьтесь на том, какой из этих синтаксисов является лучшей идеей?

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

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

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

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

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

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

4 голосов
/ 18 декабря 2011

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

С кем вам удобно работать

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...