アセンブラ命令のjle の使い方
jle
を確かめてみる
jle
というのはJump if less or equal (より小さいか等しい場合はジャンプ)
ということで、二つの値を cmp
で比較したものに対するジャンプ命令です。ジャンプするというのは分かるのですが、どういう条件だとジャンプするのか分からなかったので実験してみました。
アセンブル、コンパイルの仕方は次の通りです。生成される実行コードの名前は jle.exe
になりました。
> nasmw -f win32 jle.asm > cl jle.obj jle_main.c
実験の結果は jle() = -1
と出たので、
cmp reg01, reg02
の結果が reg01 ≦ reg02
だとジャンプするようです。
jle.asm
section .text global _jle _jle: mov eax, 1 mov ebx, 2 cmp eax, ebx jle tag mov eax, -2 ret tag: mov eax, -1 ret
jle_main.c
#include <stdio.h> int jle(void); int main(void) { printf("jle() = %d\n", jle()); }