본문 바로가기
Reversing/개념정리

[어셈블리어] 명령어와 피연산자

by jh117jh 2024. 4. 12.
728x90

https://www.youtube.com/watch?v=Ht0l1KfM2BY&list=PL1IheunyylbaYAzQv8bdu3hxq8YX5cKlY&index=2&ab_channel=%EC%8A%A4%EB%AC%B4%EB%94%94TV

 

 유튜브에서 스무디 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