gpt4 book ai didi

assembly - x86 汇编语言

转载 作者:行者123 更新时间:2023-12-02 10:57:23 29 4
gpt4 key购买 nike

我一直在努力掌握 x86 汇编语言,并且想知道是否有一个与 movl $1, %eax 等效的快速简短的语言。就在那时,我认为列出该语言中经常使用的习语可能是个好主意。

这可能包括首选使用 xorl %eax, %eax,而不是 movl $0, %eaxteSTL %eax, %eax 反对 cmpl $0, %eax

哦,请为每篇文章发布一个示例!

最佳答案

这是另一个有趣的“习语”。希望每个人都知道,即​​使与乘法相比,除法也是一个很大的时间消耗。使用一点数学知识,可以乘以常数的倒数,而不是除以它。这超出了 shr 技巧的范围。例如,除以 5:

mov eax, some_number
mov ebx, 3435973837 // 32-bit inverse of 5
mul ebx

现在 eax 已被除以 5,而无需使用 Slow div 操作码。这是无耻地从 http://blogs.msdn.com/devdev/archive/2005/12/12/502980.aspx 窃取的除法有用常量列表。

3   2863311531
5 3435973837
7 3067833783
9 954437177
11 3123612579
13 3303820997
15 4008636143
17 4042322161

对于列表中没有的数字,您可能需要事先进行移位(除以 6,shr 1,然后乘以 3 的倒数)。

关于assembly - x86 汇编语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647640/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com