[解決済み】JNZとCMPのアセンブリ命令
2022-02-23 12:22:37
質問
間違っていたら訂正してください。
これは、私の理解では
JNZ
と
CMP
.
JNZ
- の場合、ジャンプは行われます。
Z
フラグがゼロ(1)でない場合
CMP
- 2つの値が等しい場合
Z
フラグが設定される(1)か、そうでない場合は設定されない(0)
これは、私が見ているフラッシュチュートリアルです。簡単なCrackMeの解法を教えてくれています。
ご覧の通り、先の命令で比較した
AL
と
47h
. を設定したものと同等でした。
Z
のフラグを立てます。(右側のレジスターウィンドウで確認できます)
次の命令は
JNZ
. 私の理解では、ジャンプが行われるのは
Z
フラグが設定されています。その
Z
フラグは設定されていますが、ジャンプは行われません。
なぜですか?
解決方法は?
JNZは"Jump if not zero (ZF = 0)"の略で、以下のようになります。 NOT "ZFが設定されている場合にジャンプする"。
少しでも覚えやすければ、JNZとJNE(jump if not equal)は等価だと考えてください。したがって
cmp al, 47
で、その中身は
AL
が47と等しい場合、ZFが設定され、ジャンプ(Not Equal - JNE)は行われない。
関連
-
[解決済み] アセンブリのNEG
-
[解決済み] オブジェクトファイルのシンボルテーブルとリロケーションテーブル
-
[解決済み] アセンブリMIPS。配列の初期化および合計
-
[解決済み] ベースレジスタを持たないqword ptr [hexvalue]の意味するところ
-
[解決済み] アセンブリ言語 - sarqはコードの中で何をするのですか?
-
[解決済み] アセンブリ言語 jeジャンプ機能
-
[解決済み] ワードptrとは何ですか?
-
[解決済み] インテルアセンブリの%ripレジスタを理解する
-
[解決済み] movqアセンブリ機能
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] error A2022: 命令オペランドは同じサイズでなければなりません。
-
[解決済み] Lc3分割のしくみ
-
[解決済み] なぜ、addiではなくaddiuを使うのか?
-
[解決済み] MIPSでディブディブ
-
[解決済み] アセンブリ - CMP後のJG/JNLE/JL/JNGE
-
[解決済み] アセンブリでは、`PTR`は何の略ですか?
-
[解決済み] アセンブリのNEG
-
[解決済み] linuxのsys_readシステムコールを作ると、レジスタeaxに何が入るのでしょうか?
-
[解決済み] MIPSプログラムにおける`lw`と`sw`の実際の働きを理解する。
-
[解決済み] MIPSの擬似命令 "move "の "addi "と "add "の違い?