반응형
JE / JNE와 JZ / JNZ의 차이점
86 코드에서 있습니다 어셈블리 JE
와 JNE
정확히 같은 JZ
과 JNZ
?
JE
그리고 JZ
때 조건부 점프 : 정확히 같은 것은 단지 다른 이름은 ZF
(이하 "영"플래그)가 1과 같다.
(유사 JNE
및 JNZ
조건부 점프 단지 다른 이름은 ZF
0과 동일하다)
은 당신 수있는 상호 교환을 사용하지만,은 당신 해야 우리 당신이 무엇을하고 있는지에 따라 사용할 :
JZ
/JNZ
는 0과 같은 것을 명시 적으로 테스트 할 때 더 적합합니다.dec ecx jz counter_is_now_zero
JE
그리고 지시JNE
후에 더 설명CMP
합니다.cmp edx, 42 je the_answer_is_42
(
CMP
입당 치는 빼기를 수행하고 플래그를 유지하면서 결과 값을 버립니다. 이것이ZF=1
피연산자가 같고 같지 않을 때 얻는ZF=0
입니다.)
로부터 명령 세트 참조 -의 매뉴얼 인텔 의 JE
과 JZ
(동일한 연산 코드가 74
rel8에 대한 / 0F 84
도 확인해 16/32를 들어) JNE
및 JNZ
( 75
rel8에 대한 / 0F 85
확인해위한 16/32) 공유 옵 코드.
JE
그리고 JZ
그들 모두에 대한 검사 ZF
(또는 제로 플래그), 수동 약간의 처음의 설명에서 다르지만 JE
rel8 및 JZ
rel8 ZF
사용하지만, 기본적으로는 동일합니다.
다음은 매뉴얼의 464, 465 및 467 페이지에서 발췌 한 것입니다.
Op Code | mnemonic | Description
-----------|-----------|-----------------------------------------------
74 cb | JE rel8 | Jump short if equal (ZF=1).
74 cb | JZ rel8 | Jump short if zero (ZF ← 1).
0F 84 cw | JE rel16 | Jump near if equal (ZF=1). Not supported in 64-bit mode.
0F 84 cw | JZ rel16 | Jump near if 0 (ZF=1). Not supported in 64-bit mode.
0F 84 cd | JE rel32 | Jump near if equal (ZF=1).
0F 84 cd | JZ rel32 | Jump near if 0 (ZF=1).
75 cb | JNE rel8 | Jump short if not equal (ZF=0).
75 cb | JNZ rel8 | Jump short if not zero (ZF=0).
0F 85 cd | JNE rel32 | Jump near if not equal (ZF=0).
0F 85 cd | JNZ rel32 | Jump near if not zero (ZF=0).
je : Jump if equal:
399 3fb: 64 48 33 0c 25 28 00 xor %fs:0x28,%rcx
400 402: 00 00
401 404: 74 05 je 40b <sims_get_counter+0x51>
참고 URL : https://stackoverflow.com/questions/14267081/difference-between-je-jne-and-jz-jnz
반응형
'ProgramingTip' 카테고리의 다른 글
Java는 C # 속성과 어디에 있습니까? (0) | 2020.10.21 |
---|---|
finish () 후 onCreate 흐름이 계속됩니다. (0) | 2020.10.21 |
--no-colors와 같은 인공위성을 가진 .mocha 파일이 있습니까? (0) | 2020.10.21 |
(row, col, values)의 튜플 목록에서 Pandas DataFrame을 생성합니다. (0) | 2020.10.21 |
sqlite는 선택에서 모든 종류의 IF (조건) 문을 지원합니까? (0) | 2020.10.21 |