리버스 엔지니어링을 공부하면서 알게된 어셈블리어들을 저장하기 위한 기록장.
어셈블리어 | 사용법 | 의미 | 메모 |
---|---|---|---|
MOV | mov arg1,arg2 | arg2의 값을 arg1에 넣는 명령어 | |
LEA | lea arg1,arg2 | arg2의 주소를 arg1에 넣는 명령어 | |
INC | Inc arg1 | arg1의 값을 1증가 | |
JMP | jmp [Address] | 해당 주소로 이동해서 OP Code를 실행한다 | 점프문 |
JNZ | jmz [Address] | 비교한 값이 0이 아닌경우 (Zero Flag 가 0인경우) 해당 주소로 이동한다 | 점프문 |
JE | Je [Address] | 비교된 값이 같으면 해당 주소로 이동한다. | 점프문 |
CMP | cmp arg1,arg2 | 두 인자 arg1, arg를 비교한다. (arg1 - arg2 형식으로 비교) | |
TEST | TEST arg1, arg2 | 피연산자 끼리 AND 연산하여 Flag 값 세팅 | |
TEST EAX EAX | 피연산자의 값이 0인지 확인하기 위해서 사용한다. | TEST 응용 |
CMP와 TEST는 두 인자를 비교하는데 사용되는데 그 비교 방식에 조금 차이가 있다.
CMP는 첫 번째 인자에서 두 번째인자를 빼서 같음을 비교한다(계산 결과가 0인지)
같으면 Zero Flag를 1로 세팅한다.
TEST는 두 인자를 AND 연산하여 두 인자가 모두 0인지 판단하는데 사용된다.
계속 추가 예정.