본문 바로가기

System & Reversing/이론

어셈블리어 1


도서 : x86 프로세서를 위한 어셈블리언어


복습 3


1. 예약어 : MASM에서 특별한 목적이 있음

 -명령어 니모닉, 레지스터 이름, 디렉티브, 연산자 등


2. 식별자 : 프로그래머가 선택한 이름

 -대소문자 구분 x, 어셈블러의 예약어와 같을 수 x

 

3. 디렉티브 : 어셈블러가 인식, 소스코드에 포함된 명령어.

 ex> .data , dword (더블워드 변수용으로 공간 예약 지시)

 

4. 세그먼트 : 프로그램 섹션 정의

 ex> 

.data : 변수 포함 영역 표시

.code : 명령어 포함

.stack : 스택 크기 결정

 

4. 명령어 : 프로그램 어셈블되었을 때 실행 가능하게 되는 문장

 -레이블, 명령어 니모닉, 피연산자, 주석

 

5. 레이블 : 데이터 위치 표시 식별자 

- 데이터 레이블(변수 위치)

- 코드 레이블 (: 으로 끝남)

 ex> target(코드 레이블 이름) : 

        mov ax, bx

        

        jmp target

->  루프 생성

 

 

6. 명령어 니모닉 : 명령을 나타내는 짧은 단어

 - mov, add, sub, mul, jmp, call …


7. 피연산자 : 0~3개 까지 가질 수 있음

 ex> imul eax, ebx, 5

 목적지: eax /소스 : ebx, 5


8. 주석 : 한줄 주석(;) / 블록 주석 (!...! , &…& )  

 

9. 데이터 정의 : 메모리에 변수를 위한 저장 공간을 확보, 변수 이름은 선택사항 , 고유자료형에 근거하여 변수 생성

 -디렉티브ex>

 - BYTE : 부호 x 8비트 정수 (1바이트)

 - WORD : 부호 x 16비트 정수 (2바이트)

 - DWORD : 부호 x 32비트 정수 (4바이트)

 

10. 연산자 dup : 상수 수식 반복 카운터로 사용, 해당 수 만큼 공간 할당

 ex> BYTE 20 dup(0) : 부호 없는 8비트 정수 크기의 공간 20개를 0으로 초기화 

 

11. 기호 상수 : 식별자(기호)를 정수 수식 또는 텍스트와 연결해서 만듦

 ex>기호 : $ -  현재 위치 카운터 

 selfPtr DWORD $ : selfPtr 이라는 변수는 자기 위치 카운터로 초기화

'System & Reversing > 이론' 카테고리의 다른 글

어셈블리어 2  (0) 2019.02.15
프로세서, 레지스터  (0) 2019.02.15
어셈블러, VM  (0) 2019.02.15