与 AT&T 相比,Intel 汇编语法的局限性
- 2024-11-12 08:36:00
- admin 原创
- 19
问题描述:
对我来说,Intel 语法更容易阅读。如果我在汇编语言森林中四处游走,只关注 Intel 语法,我会错过什么吗?除了能够阅读其他人的 AT&T 汇编语言之外,我还有没有什么理由想要切换到 AT&T?我的第一个线索是 gdb 默认使用 AT&T。
如果这很重要,我只关注与 Linux/BSD 和 C 语言相关的任何关系汇编和语法。
解决方案 1:
两者之间确实没有优势。不过我同意英特尔语法更容易阅读。请记住,据我所知,所有 GNU 工具都可以选择使用英特尔语法。
看起来你可以用这个让 GDB 使用英特尔语法:
设置反汇编风格英特尔
GCC 可以使用英特尔语法-masm=intel
。
解决方案 2:
GNU 汇编器 (GAS) 的主要语法是 AT&T。Intel 语法是其中的一个相对较新的补充。Linux 内核中的 x86 汇编采用 AT&T 语法。在 Linux 世界中,这是通用语法。在 MS 世界中,Intel 语法更常见。
就我个人而言,我讨厌 AT&T 语法。有很多免费的汇编程序(NASM、YASM)以及 GAS 也支持 Intel 语法,因此在 Linux 中使用 Intel 语法不会有任何问题。
除此之外,这只是语法上的差异。两者的结果将是相同的 x86 机器代码。
解决方案 3:
两者之间其实并没有什么优势。不过我不同意英特尔语法更容易阅读,因为我个人讨厌英特尔语法。请记住,据我所知,所有 GNU 工具都可以选择使用英特尔语法。
at&t noprefix intel
mov eax, -4(ebp,edx,4) mov DWORD PTR[-4 +ebp +edx *4], eax
mov eax, -4(ebp) mov DWORD PTR[-4 +ebp], eax
mov edx, (ecx) mov DWORD PTR[ecx], edx
lea ( ,eax,4), eax lea eax, DWORD PTR[8 + eax*4]
lea (eax,eax,2), eax lea eax, DWORD PTR[eax*2+eax]
...指令越来越复杂,情况也越来越复杂
说得够多了。
PS:这个答案存在的主要目的是突出(在我看来)其他一些答案的弱点,这些答案实际上不是答案,只是观点。当然,这个答案实际上只是我的拙见。
PPS:我不讨厌英特尔语法,我只是不在乎。
解决方案 4:
它是“相同的语言”,因为它可以编译为相同的机器代码,具有相同的操作码等。另一方面,如果您正在使用 GCC,您可能需要学习 AT&T 语法,因为它是默认的 - 无需更改编译器选项等即可获得它。
我也是使用 Intel 语法 x86 ASM 进行学习的(也在 DOS 上),刚开始切换到 C/UNIX 时发现它更直观。但是一旦你学会了 AT&T,它看起来就同样简单。
我不会想那么多——一旦你了解了 Intel,学习 AT&T 就很容易了,反之亦然。实际的语言比语法更难记住。所以一定要专注于一个,然后在遇到另一个时学习它。
解决方案 5:
愿意适应任何正在使用的东西是专业精神的标志。两者之间没有真正的优势。英特尔语法在微软世界中很常见,AT&T 是 Linux/Unix 中的标准。由于两者都没有优势,人们倾向于记住他们首先看到的东西。话虽如此,专业程序员却能超越这些。使用他们在工作中或你工作的领域中使用的任何东西。
解决方案 6:
Intel 语法涵盖了所有内容(假设汇编器/反汇编器是最新的,并且 Intel 在其指令集中添加了最新的垃圾指令)。我确信 at&t 也一样。
英特尔
movl -4(%ebp,%edx,4),%eax mov eax,[ebp-4+edx*4]
movl -4(%ebp),%eax mov eax,[ebp-4]
movl (%ecx), %edx mov edx, [ecx]
leal 8(,%eax,4),%eax lea eax,[eax*4+8]
leal (%eax,%eax,2),%eax lea eax,[eax*2+eax]
...指令越来越复杂,情况也越来越复杂
说得够多了。
解决方案 7:
我的第一门汇编语言是 MIPS,我注意到它与 ATT 语法非常相似。所以我更喜欢 ATT 语法,但只要你能读懂它,那其实并不重要。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件