x86アセンブリコードでは、JE
とJNE
はJZ
とJNZ
とまったく同じですか?JE/JNEとJZ/JNZの相違
54
A
答えて
75
JE
とJZ
が正確に同じもののためにわずかに異なる名前である: 条件ジャンプZF
(「ゼロ」フラグ)1
に等しい場合(同様に、JNE
とJNZ
のためだけ異なる名前でありますZF
が0に等しい条件ジャンプ )
あなたが同義的にそれらを使用することができますが、あなたが 012に応じて、それらを使用する必要がありますあなたが明示的に何かがゼロに等しいため をテストしているとき
JZ
/JNZ
がより適切です:dec ecx jz counter_is_now_zero
JE
とJNE
はCMP
命令の後に、より適切であるあなたは何をしているか:cmp edx, 42 je the_answer_is_42
(A
CMP
命令は減算を実行し、フラグを保持したまま結果の値をスローします。これは、彼らがいないときのオペランドが とZF=0
等しいときにZF=1
を得る理由です。)
30
Intel's manual - Instruction Set Referenceから
、JE
とJZ
は同じオペコードを持っている(74
rel8用/ REL 16 0F 84
/32)また、JNE
およびJNZ
(rel16/rel32の場合は75
がrel16/32の場合rel8/0F 85
)のオペコードを共有します。
JE
とJZ
マニュアル第JE
rel8とJZ
rel8 ZF
使用の説明においてわずかに異なるが、基本的にはそれらは同じであるが、それらは両方とも、ZF
(またはゼロフラグ)を確認。ここで
は、マニュアルのページ464からの抽出物である465と467
Op Code | mnemonic | Description
-----------|-----------|-----------------------------------------------
74 cb | JE rel8 | Jump short if equal (ZF=1).
74 cb | JZ rel8 | Jump short if zero (ZF ← 1).
0F 84 cw | JE rel16 | Jump near if equal (ZF=1). Not supported in 64-bit mode.
0F 84 cw | JZ rel16 | Jump near if 0 (ZF=1). Not supported in 64-bit mode.
0F 84 cd | JE rel32 | Jump near if equal (ZF=1).
0F 84 cd | JZ rel32 | Jump near if 0 (ZF=1).
75 cb | JNE rel8 | Jump short if not equal (ZF=0).
75 cb | JNZ rel8 | Jump short if not zero (ZF=0).
0F 85 cd | JNE rel32 | Jump near if not equal (ZF=0).
0F 85 cd | JNZ rel32 | Jump near if not zero (ZF=0).
関連する問題
- 1. importとconstとの相違点とcommonjsでの相違点
- 2. =と:=の相違点
- 3. Java JFrameとJPanelの相違点Repaint()との相違
- 4. PHPUnitとPHPSpecの相違点と相違点
- 5. IE標準、相違点および相違点の相違点
- 6. PythonとPandasの違いの相違点
- 7. Pythonでの[]と[、、]の相違
- 8. CBUUIDとNSUUIDの相違点
- 9. NSTimeZoneとGMTの相違点
- 10. ob_get_cleanとob_get_flushの相違
- 11. ListViewとArrayListの相違点
- 12. 言語とフレームワークの相違
- 13. pictureBox.Update()とpictureBox.Refresh()の相違点
- 14. ApplicationContextInitializerとBeanFactoryPostProcessorの相違点
- 15. システムとshell_execの相違点
- 16. AsyncSocketとAsyncUdpSocketの相違点
- 17. .textと.get_text()の相違点
- 18. plt.close()とplt.clf()の相違点
- 19. `BeginSubscribeToStreamingNotifications`と` SubscribeToStreamingNotifications`の相違点
- 20. Delegate.InvokeとDelegateの相違点
- 21. InternalResourceViewResolverとUrlBasedViewResolverの相違点
- 22. tf.nn.convolutionとtf.nn.conv2dの相違点
- 23. Backbone.Layout.extendとBackbone.view.extendの相違点
- 24. JavaとMacOSの相違点
- 25. スカラ - マップとフラットマップの相違
- 26. Yocto:CORE_IMAGE_EXTRA_INSTALLとIMAGE_INSTALLの相違点
- 27. window.someRandomVarとsomeRandomVarの相違点
- 28. CDRとxDRの相違点
- 29. gst_bus_add_watch()とg_signal_connect()の相違点
- 30. EventStreamとEventBusの相違点
長い答え:はい。 –
短い答え:いいえ。 (しかし、それらは同じマシンコードに正確に対応しているので、同じことを*正確には同じものにします) –
JEは、等しい場合にジャンプし、先行比較にはzフラグが設定されている場合、JZはジャンプを意味します。彼らはまったく同じです、いくつかの人々は私の比較の点で考える/書くことが同じかどうか等しいと思ってほしい。いくつかの人々は考えるとzのフラグセットまたはzフラグがクリアされているという点で書いています。 –