Notice
Recent Posts
Recent Comments
Link
게하! 개하! (게임도 하고 개발도 하고)
어셈블리어 17. 어셈블리어 JG JL, 상태레지스터 SF OF 본문
이번 강의는 내용은 길지만 저번 시간의
JA JB와 겹치는 부분이 많았다.
JG : jump if A greater than B
JL : jump if A less than B
JA와 JB랑 비슷하지만 차이가 있다.
비교하는 데이터를 어떤 데이터로 인식하느냐의 차이인데
JG와 JL은 부호가 있는 데이터를 비교할 때 사용한다.
만약에 1010 vs 0001
부호가 없는 데이터로 인식하고 비교하면 10vs1 (JA, JB)
부호가 있는 데이터로 인식하고 비교하면 -4vs1 (JG, JL)
이렇게 결과가 완전히 뒤바뀌게 된다.
eax를 1010으로 해놓고
ebx를 0001로 해놓고
둘을 JA로 비교하면 참이 되어 40100A로 jmp한다.
하지만 둘을 JG로 비교한다면
-4vs1이 되기 때문에 거짓이 되므로 jmp가 활성화하지 않는다.
반대로 JL은 참이 되므로 40100A로 jmp한다.
상태 플래그 중에서
S 플래그 : sign플래그로 이진수 맨 앞의 수와 같다.
OF 플래그 : 계산 과정에서 오버플로우가 일어났는지를 판단한다. 1이면 오버플로우가 일어난 것이고 0이면 일어나지 않은 것이다.
'SISS (2017-2018) > 어셈블리어' 카테고리의 다른 글
어셈블리어 17. 어셈블리어 JG JL, 상태레지스터 SF OF (0) | 2018.08.24 |
---|---|
어셈블리어 16. JA JB에 N과 E 붙이기 (0) | 2018.08.19 |
어셈블리어 15. 조건분기명령어 JNE JA JB 상태 레지스터 CF (0) | 2018.08.13 |
어셈블리어 14. 조건분기명령어 JZ, 상태레지스터 ZF (0) | 2018.08.13 |
어셈블리어 13. 메모리 주소 지정 방식 (0) | 2018.08.06 |
어셈블리어 12. 메모리의 간접참조 (0) | 2018.08.05 |
0 Comments