汇编 – NASM(英特尔)与AT&T语法:有什么优势?

我正在阅读英特尔处理器文档并同时编写一些基本的汇编代码.我的服务器上有nasm和as(GAS),我理解两个汇编程序的基本区别.

长期来说:

>关注哪种语法更好?
>这些语法有哪些优缺点?
>哪一个被更广泛地使用和理解?

我也很感激您可以与我分享的任何偏好.

>关注哪种语法更好?

取决于您的项目.并非每个编译器都允许这两种语法.如果你需要在其他平台上组装代码,那么英特尔可能会更好,即使经过几年的经验,我个人更喜欢英特尔,但这是一个小差异,对我来说并不重要.

>这些语法有哪些优缺点?

在AT& T语法中,如果需要使用宏,则会有更多%,甚至更多. OTOH我更喜欢源,目的地排序,但那是个人品味,其他人可能更喜欢它,因为它类似于C中的赋值运算符的写入顺序(以及更多).

我的INTEL语法是像DWORD PTR那样的猥亵,在AT& T中,一个小的附加l就足够了.在许多情况下,助记符的确切拼写不同,我发现AT& T更合乎逻辑,当然英特尔方式是标准.英特尔的寻址模式更具可读性.

>哪一个被更广泛地使用和理解?

我相信AT& T更常用,因为Linux在嵌入式平台上无处不在,其中汇编程序在其他软件项目中更常用.有更多的汇编程序可以理解Intels语法,这很多都是正确的,但我相信gcc / gas更多地用于汇编程序很重要/有用的领域.

相关文章
相关标签/搜索