我正在阅读英特尔处理器文档并同时编写一些基本的汇编代码.我在我的服务器上有两个nasm和as(GAS),我理解两个汇编程序的基本区别.
长期来说:
我也很感激您可以与我分享的任何偏好.
关注这些语法中哪一个是更好的主意?
无论您愿意与谁一起工作
这些语法的优点和缺点是什么?
对我来说: 优点: - Intel:可读 - AT&T:更多平台(因为“as”在许多平台上可用) 缺点: - Intel:许多汇编程序,但很少有共同的相似之处,许多功能是汇编程序特定的 - AT&T:它添加了 + /- 在你的眼睛里
哪一种被更广泛地使用和理解?
AFAIK Intel 语法使用更广泛。您可以检查支持 Intel 和 AT&T 的汇编器数量。
取决于您的项目.并非每个编译器都允许这两种语法.如果你需要在其他平台上组装代码,那么英特尔可能会更好,即使经过几年的经验,我个人更喜欢英特尔,但这是一个小差异,对我来说并不重要.
在AT&T语法中%,如果需要使用宏,则会有更多甚至更多.OTOH我更喜欢源,目的地排序,但那是个人品味,其他人可能更喜欢它,因为它类似于C中的赋值运算符的写入顺序(以及更多).
我的INTEL语法是猥亵DWORD PTR,在AT&T中,附加的小l就足够了.在许多情况下,助记符的确切拼写不同,我发现AT&T更合乎逻辑,当然英特尔方式是标准.英特尔的寻址模式更具可读性.
我相信AT&T的使用更多,因为Linux在嵌入式平台上无处不在,其中汇编程序在其他软件项目中更常用.有更多的汇编程序可以理解Intels语法,这很多都是正确的,但我相信gcc/gas更多地用于汇编程序很重要/有用的领域.
| 归档时间: |
|
| 查看次数: |
4721 次 |
| 最近记录: |