x86汇编,优化条件移动

时间:2013-10-19 06:53:12

标签: optimization assembly x86

这是线程代码命令,如Forth ?,check 0位于堆栈顶部(edi)并通过解除引用命令指针(ebx)跳过下一个命令)。

_ifleap:
   mov eax, [edi]
   add edi, 4
   test eax, eax
   cmovz ebx, [ebx]
   mov ebx, [ebx]
   jmp [ebx + 12]

有没有办法优化这个?线路更少,执行速度更快,CPU支持更好? 想法是检查[edi]是否为零,然后mov ebx, [ebx]否则无效。 edi必须递增4(这是一种堆栈指针)。当然cmovz仅适用于i686,但使用标签对于此任务来说似乎有些过分。

(是的,我有x86指令集参考,但它很大,需要很长时间才能掌握,但我偶尔只使用汇编,所以我寻求专家意见。)

0 个答案:

没有答案