본문 바로가기

Research/Windows

x86 Assembly/Control Flow




InstructionDescriptionsigned-nessFlags
JOJump if overflow OF = 1
JNOJump if not overflow OF = 0
JSJump if sign SF = 1
JNSJump if not sign SF = 0
JE 
JZ
Jump if equal 
Jump if zero
 ZF = 1
JNE 
JNZ
Jump if not equal 
Jump if not zero
 ZF = 0
JB 
JNAE 
JC
Jump if below 
Jump if not above or equal 
Jump if carry
unsignedCF = 1
JNB 
JAE 
JNC
Jump if not below 
Jump if above or equal 
Jump if not carry
unsignedCF = 0
JBE 
JNA
Jump if below or equal 
Jump if not above
unsigned

CF = 1 or ZF = 1
(
CF or ZF)

JA 
JNBE
Jump if above 
Jump if not below or equal
unsignedCF = 0 and ZF = 0
(not cf and not zf)
JL 
JNGE
Jump if less 
Jump if not greater or equal
signedSF <> OF
(sf xor of)
JGE 
JNL
Jump if greater or equal 
Jump if not less
signedSF = OF

JLE 
JNG
Jump if less or equal 
Jump if not greater
signedZF = 1 or SF <> OF
((sf xor of) or zf)
JG 
JNLE
Jump if greater 
Jump if not less or equal
signedZF = 0 and SF = OF
(not ((sf xor of) or zf))
JP 
JPE
Jump if parity 
Jump if parity even
 PF = 1
JNP 
JPO
Jump if not parity 
Jump if parity odd
 PF = 0
JCXZ 
JECXZ
Jump if %CX register is 0 
Jump if %ECX register is 0
 %CX = 0 
%ECX = 0





출처 : http://unixwiz.net/techtips/x86-jumps.html

어셈블리 설명은 https://en.wikibooks.org/wiki/X86_Assembly/Control_Flow 이곳에.


SMT 용으로 짜기 편한 플래그 표현은 여기서

http://www.osdata.com/topic/language/asm/progcont.htm




'Research > Windows' 카테고리의 다른 글

프로그램 시작 시 디버거에 바로 붙이는 방법  (0) 2016.01.21
DEBUG_EVENT code  (0) 2015.12.01
PEB, PEB_LDR_DATA, LDR_MODULE  (0) 2014.12.17
windbg 심볼 / 치트 시트  (0) 2014.12.17
C++ constructor 생성자 호출 방식  (0) 2014.10.10