0

これは、Forth のようなスレッド化されたコード コマンドであり、スタックの最上位にあることを?確認し ( )、コマンド ポインターを逆参照して次のコマンドをスキップします ( )。0ediebx

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

これを最適化する方法はありますか?より少ない行、より高速な実行、より優れた CPU サポート? アイデアは、[edi]ゼロかどうかを確認し、それmov ebx, [ebx]以外の場合は何もしないことです。4 ずつインクリメントするedi必要があります (これは一種のスタック ポインターです)。もちろんcmovzi686 のみですが、ラベルを使用するのはこのタスクにはやり過ぎのようです。

(はい、私は x86 命令セットのリファレンスを持っていますが、それは巨大で、マスターするのに長い時間がかかりますが、アセンブリはたまにしか使用しないので、専門家のアドバイスを探します。)

4

0 に答える 0