에서 테스트 한 후 다음 코드를 참조하십시오. test % ebx와 같은 명령어를 사용한다면 % ebx는 항상 같아야합니까?JL 조립
또한, 나는 GDB에 달려 다음은 정보의 출력이 등록되어 -
(gdb) info registers
eax 0x0 0
ecx 0x189f 6303
edx 0x6 6
ebx 0x442ff4 4468724
esp 0xffbde13c 0xffbde13c
ebp 0xffbde4c8 0xffbde4c8
esi 0x1d5c4d50 492588368
edi 0x444140 4473152
eip 0x80590dd 0x80590dd
eflags 0x296 [ PF AF SF IF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 99
사람이 작업을 수행하는 방법을 설명시겠습니까?
'jl'는 "동일한"과 거의있다. 그것은 단지 SF! = OF인지 테스트합니다. 'test'는 OF를 false로, SF를'operand1 & operand2'의 부호로 설정합니다. 그래서'ebx'가 음수이면 점프를 취할 것입니다. 왜 그들이'js '를 쓰지 않았는지 나는 모른다. 그것은 더 합리적인 것입니다. – harold
위의 코드는 icc 컴파일러에서 디스 어셈블 된 코드입니다. –
그래,하지만 난 아직도 어떤 이유라도 생각할 수 없다. 그것은 매크로 연산 융합을 돕지도 않습니다. 'js'는'jl'과 마찬가지로'test'와 융합 될 수 있습니다. – harold