[Assembly] 어셈블리어란 무엇인가?
- Language/Assembly
- 2019. 2. 1.
어셈블리어란?
어셈블리어란 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1로 대응시켜 코드화한 기호 언어입니다.
1. 어셈블리어로 작성한 원시 프로그램은 어셈블러를 통해 목적 프로그램(기계어)로 어셈블 하는 과정을 거쳐야 합니다.
2. 사용자가 프로그램을 쉽게 읽고 이해할 수 있습니다.
3. 프로그램에 기호화된 명령 및 주소를 사용합니다.
4. 어셈블리어의 기본 동작은 동일하지만 작성 CPU마다 사용되는 어셈블리어가 다를 수 있습니다.
5. 어셈블리어에서 사용되는 명령은 의사 명령과 실행 명령으로 구분할 수 있습니다.
컴파일 vs 어셈블
고급언어로 작성한 원시 프로그램을 컴파일러가 기계어로 번역하는 작업을 컴파일(Complie)한다고 하고 어셈블리어로 작성한 원시 프로그램을 어셈블러가 번역하는 작업을 어셈블(Assemble)한다고 합니다.
어셈블리어의 명령어 형식
어셈블리어의 명령어 형식은 Label, OP, Operand로 구성됩니다.
Label : 데이터를 기억할 기억장소, 또는 분기할 위치, 기호 상수 등에 대한 기호를 기술하는 부분으로 생략할 수 있다.
OP : 명령어(OP-Code)를 기술하는 부분입니다.
Operand : OP-code가 연산을 수행하기 위한 연산의 대상이 되는 Literal(상수,데이터)나 주소, Register 번호 등을 기술하는 부분입니다.
어셈블러와 어셈블 과정
어셈블러는 어셈블리어로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 어셈블하는 언어 번역 프로그램입니다.
1. 어셈블리어로 작성된 원시 프로그램을 목적프로그램으로 어셈블 하는 과정은 크게 2단계(Pass)로 나누어서 수행됩니다.
2. 두개의 Pass를 사용하면 기호를 정의하기 전에 사용할 수 있는 프로그램 작업이 용이합니다.
어셈블러의 종류
1. 단일 패스 어셈블러 : 원시 프로그램을 하나의 명령문씩 읽는 즉시 기계어로 번역하여 목적프로그램으로 만듭니다.
2. 이중 패스 어셈블러 : 원시 프로그램을 앞에서부터 끝까지 읽어서 1단계의 작업을 수행한 후 다시 처음부터 읽으면서 1단계에서 수행한 결과를 사용하여 완전한 목적 프로그램을 만듭니다.
3. 크로스 어셈블러 : 현재 사용하는 컴퓨터와는 다른 명령 형태로 동작하는 컴퓨터에서 사용할 프로그램을 어셈블 할 때 사용되는 어셈블러를 말합니다. 현재 어셈블하는 컴퓨터가 아닌 어셈블된 프로그램을 실행시킬 컴퓨터에 맞게 목적 프로그램을 생성합니다.
'Language > Assembly' 카테고리의 다른 글
[Assembly] 어셈블리어 기초 사용법 & 예제 총정리 (6) | 2021.01.26 |
---|---|
[Assembly] 어셈블리어 명령어 총정리 (1) | 2021.01.26 |