Gnu汇编(GAS)优化

时间:2011-03-08 22:38:23

标签: optimization assembly gas fasm

我实际上是在学习装配,我和Gas一起去了,但问题是:

1)我只知道英特尔语法,我在一个页面中看到,在某些情况下,使用intel语法的气体并不是很好。这是正确还是我错了?我在谈论这个网站:

http://wiki.osdev.org/FASM

2)然后我也看到(我不记得页面)事实气体可以在几个架构中组装也减慢了组装的程序。是不是?

3)你推荐哪种汇编程序产生高度优化的代码?我在其他问题中看到,在某些情况下,每个汇编程序都可以转换为不同的操作码。我在YASM,FASM,GAS和NASM之间,但其他推荐被接受。知道FASM非常快......

非常感谢!保持这个伟大的社区!

1 个答案:

答案 0 :(得分:8)

汇编语言的主要观点是您所编写的内容直接转换为单个机器指令。几乎所有优化都取决于你,程序员。

汇编程序只执行极少数的优化,这些优化在任何情况下都非常简单。主要的一点是x86处理器有短跳,近跳和远跳。大多数汇编器可以/将优化跳转以使用从源到目标地址的最小形式的跳转指令。即使/如果没有自动完成,1)它很少产生显着的速度差异(即使在计算个别时钟周期的水平),2)你通常可以添加short或{{1}获取较小尺寸的指令(如果不能“达到”,汇编器会给你一个警告)。

底线:优化很少是选择一个汇编程序而不是另一个汇编程序的理由。真正的原因是支持您关注的指令集以及您想要定位的平台。