2

JMP、CALL、MOV、PUSH (より使いやすいコマンド) などの他のアセンブリ ステートメントと比較して、CMP は実行に時間がかかると言うのは正しいですか?

4

1 に答える 1

-1

いいえ、MOV は実行に最も時間がかかる可能性があります。一般的に言えば、移動を実行するにはメモリにアクセスする必要があり (レジスタ アクセスよりもはるかに遅い)、ブロックされる可能性があるためです。一方、CMP は一般的に、実際にはリテラルとレジスタを引数として取り、ALU のみをヒットします。

CALL は実際に PUSH と JUMP を実行するため、2 番目に長くなります。そうそう、前述のとおり、JMP はパイプラインをフラッシュできます (ただし、無条件のジャンプはできません)。

要するに、CMP は高速であり、INC、ADD、またはレジスタ値とリテラルを使用するように最適化されていることが多く、ALU をヒットする以上のことは何もしない他の単純な数学計算のように高速です。

于 2012-06-20T03:28:59.003 に答える