728x90
유튜브에서 스무디 TV님의 영상을 보며 어셈블리어에 대해 공부를 하여 정리한 내용이다.
어셈블리어의 구조
명령어 OpCode(operation) 와 피연산자 operand의 조합으로 이루어지게 된다.
즉 'XX를 ~~ 해라' 와 같이 XX는 명령어 ~~는 피연산자와 같다고 보면 된다.
mov와 레지스터
명령어 : mov
의미 : move의 축약어로서 말 그대로 이동시켜라는 의미를 갖는다.
예를 들어 mov eax, 1이라 하면
eax라는 목적지에 1이라는 값을 옮겨놔라 라는 의미의 사용이 된다.
eax는 cpu안에 있는 여러 레지스터 중 하나의 이름이다.
범용 레지스터(우리가 사용할 수 있는 레지스터) : EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI
MOV에 대한 피연산자
MOV의 피연산자 조합은
MOV REG, 값
MOV REG1, REG2
MOV REG, 값은 레지스터에 직접적인 값을 넣는 것이고, MOV REG1, REG2는 REG1에 REG2값을 넣는다.
예를 들어
MOV EAX, 1 : EAX레지스터 -> 1
MOV EBX, EAX : EBX레지스터에는 EAX
어셈블리어에서 수 표현
어셈블리어 에서 수는 일상에서 가장 쉽게 접할 수 있는 10진수 체계가 아닌 16진수 체계로 알파벳수로 시작되는 수를 기록할 경우(즉 10, 11, 12, 13, 14, 15에 해당하는) 앞에 0을 붙인다.
예를 들면
MOV EAX, A 가 아닌
MOV EAX, 0A로 표현을 한다.
728x90
'Reversing > 개념정리' 카테고리의 다른 글
[어셈블리어] 빅엔디안, 리틀엔디안 (0) | 2024.04.19 |
---|---|
[개념정리] Reversing 개념 (0) | 2024.04.04 |