[解決済み] アセンブリで命令セテは何をするのですか?
2022-02-14 15:01:20
質問内容
私のユニバーシティ・コースでは、基本的なアセンブリの知識が必要なのですが、私は何も持っていません。しかし、彼らはこのサンプルアセンブリコードを私たちに与えました。
080485fa <check_pin>:
80485fa: 55 push ebp
80485fb: 89 e5 mov ebp,esp
80485fd: 81 7d 08 bf 07 00 00 cmp DWORD PTR [ebp+0x8],0x7bf
8048604: 0f 94 c0 sete al
8048607: 0f b6 c0 movzx eax,al
804860a: 5d pop ebp
804860b: c3 ret
以下のCコードとほぼ同等と思われる。
int check_pin(int pin) {
return pin == 0x7bf;
}
このアセンブリコードが一体何をするものなのか、私は理解しようとしているのですが、次のように唖然としています。
sete
という命令があります。この命令は何をするのでしょうか?
ウィキブックスでは
x86アセンブリのコース
については見つけられませんでした。
sete
という章があり、その中にアセンブリ命令について書かれています。
解き方は?
その
sete
命令(およびそれに相当するもの。
setz
) は、その引数を
1
は、ゼロフラグが設定されている場合、または
0
それ以外の場合は ゼロフラグは、最後の比較または算術命令で等しいかゼロの結果を得た場合に設定されます。 したがって、あなたの場合
sete
セット
al
から
0
または
1
の結果に応じて、前の
cmp
という命令があります。
関連
-
[解決済み】バイナリーボム - フェーズ4
-
[解決済み] popまたはadd esp、4 ? その差は何ですか?
-
[解決済み] cmovlオペコードの中で何と何が比較されるのですか?
-
[解決済み] x86アセンブリで160x100モードを実現する
-
[解決済み] エラー: `push' の命令サフィックスが無効です [重複].
-
[解決済み] MIPSアセンブリ言語では、なぜ.globl mainを使うのですか?
-
[解決済み] アセンブリの追加要求の明確化
-
[解決済み] アセンブリ言語 jeジャンプ機能
-
[解決済み] LC3 LEA 命令と格納された値
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】アセンブリJLEのjmp命令例
-
[解決済み] NASMでscanfを使うには?
-
[解決済み] アセンブリでは、`PTR`は何の略ですか?
-
[解決済み] なぜSet on Less ThanはALU演算なのか?
-
[解決済み] 8086アセンブリ言語での2つのレジスタのスワッピング(16ビット)
-
[解決済み] ループ内で配列の個々の要素にアクセスするにはどうしたらよいですか?
-
[解決済み] ベースレジスタを持たないqword ptr [hexvalue]の意味するところ
-
[解決済み] objdumpの出力にあるdata16とはどういう意味ですか?
-
[解決済み] アセンブリの追加要求の明確化
-
[解決済み] ST(0)をEAXに移動させる方法は?