리버싱(Reversing)

[개념 공부] 어셈블리 cmp/test 정리

1학년 2022. 12. 8. 12:37

오늘은 cmp와 test에 대해 알아볼 것이다.

 

cmp(compare)

ex) cmp a , b

두 피연산자를 비교하는 작업을 수행한다. a에서 b의 값을 빼는 연산을 해서 비교한다.

두 피연산자의 값이 같다면 결과는 0이고 ZF가 1로 설정된다. 

두 피연산자의 값이 다르면 ZF는 0으로 설정된다.

 

 test

ex) test a , b

a와 b의 AND연산을 수행한다. 

test eax , eax와 같은 연산에서 피연산자가 0인지 아닌지에 대해 알 수 있다.

결과가 0이라면 eax의 값은 0이라고 판단할 수 있고 ZF가 1로 설정된다.

피연산자의 값이 0이 아닌 경우에는 값을 단정지을 수 없다.