· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
조건분기명령어

조건분기 명령어


1.1. 개요

  • 이 문서의 내용은 MASM, TASM의 명령어 기준으로 OP의 순서(부등호조건)를 가정합니다.
  • AT&T 문법에서는 부등호 조건이 (방향만)반대라고 생각하시면 됩니다.

1.2. 조건분기 명령어 요약표

  • 아래의 표에서 SF와 OF를 비교하는 조건은 부호를 식별한다는 것으로 생각하시면 됩니다.
  • ZF는 상호 뺄셈을 하였을때 0인경우를 1로 봅니다. 즉, 값이 같을때 1이 됩니다.
  • OF(Overflow)와 CF(Carry)의 차이를 혼돈하시는 분이 계실거 같은데 CF는 자리빌림을 하는 경우이고 OF는 계산결과가 Sign bit가 반전될때 발생합니다.

    명령어 부등호 조건 Flag 조건
    JMP 1(True)
    JA > CF=0 & ZF=0
    JNBE > CF=0 & ZF=0
    JAE >= CF=0 | ZF=1
    JNB >= CF=0 | ZF=1
    JB < CF=1
    JNAE < CF=1
    JBE <= CF=1 | ZF=1
    JNA <= CF=1 | ZF=1
    JCXZ CX == 0 .
    JE == ZF=1
    JZ == ZF=1
    JG > ZF=0 & SF == OF
    JNLE > ZF=0 & SF == OF
    JGE >= SF == OF
    JNL >= SF == OF
    JL < SF != OF
    JGNE < SF != OF
    JLE <= ZF == 1 | SF != OF
    JNG <= ZF == 1 | SF != OF
    JNE != ZF == 0
    JNZ != ZF == 0
    JNO No overflow OF == 0
    JNP No parity (홀수) PF == 0
    JPO No parity (홀수) PF == 0
    JNS No sign (양수) SF == 0
    JO Overflow OF == 1
    JP Parity (작수) PF == 1
    JS Sign (음수) SF == 1

1.3. 참고: SUB의 Carry 동작

SUB를 ADD연산으로 대체하여 표현할경우 Carry의 특성 ([http]SeeAlso)
MOV AL, 4 /* 목적지 피연산자 */
MOV CL, 1 /* 소스 피연산자 */
NEG CL /* 2의 보수 */
ADD AL, CL /* 덧셈 */
CMC /* Carry flag 반전 */


1.4. 문서를 마치며

  • 제가 알고 있는거 정리한겁니다. 혹시 틀린부분 있으면 인정사정 보지 마시고 고쳐주세요.
  • x86외의 다른 CPU계열도 누군가 정리해주시면 여러분들에게 도움이 되지 않을까 생각됩니다.
  • 이 문서의 최근 버젼은 http://www.minzkn.com:2744/ 에서 보실수 있습니다.



ID
Password
Join
If it pours before seven, it has rained by eleven.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-04-16 09:42:09
Processing time 0.0060 sec