컴퓨터의 기계어와 고급 언어 사이의 중간 단계에 해당하는 프로그래밍 언어다.
기계어는 컴퓨터가 직접 이해하고 실행할 수 있는 0과 1로 이루어진 바이너리 코드이지만,
이를 사람이 작성하기는 매우 어렵다. 반면, 고급 언어는 사람이 이해하기 쉽고, 여러 추상화가 되어 있어 프로그램을 작성하는 데 편리하다.
📌 어셈블리어의 특징
1️⃣ 저수준 언어
- CPU의 명령어와 직접적으로 대응되며, 하드웨어를 세밀하게 제어할 수 있다.
2️⃣ 빠른 실행 속도
- 고급 언어 보다 컴파일 과정 없이 직접 기계어로 변환되므로 속도가 빠르다.
3️⃣ 하드웨어 의존적
- 특정 CPU( 예: x86, ARM 등 ) 아키텍처에 맞춰 작성되며, 다른 CPU에서는 동작하지 않는다.
4️⃣ 어셈블러( Assembler ) 필요
- 어셈블리어 코드를 기계어로 변환하려면 어셈블러( Assembler )가 필요하다. ( 예: MASM, NASM )
📌 어셈블리어 기본 구조
어셈블리어 코드는 기본적으로 세 가지 섹션으로 나뉜다.
1️⃣ 데이터 섹션( .data )
- 프로그램에서 사용할 변수나 상수를 정의한다.
2️⃣ 코드 섹션( .text )
- 실제 실행될 명령어가 포함된 부분이다.
3️⃣ 스택 섹션( .bss )
- 초기화되지 않은 데이터를 저장하는 공간이다.
'언어 > 어셈블리어' 카테고리의 다른 글
[어셈블리어] x86-64 (=x64) 아키텍처 ( 64비트 ) 범용 레지스터 (0) | 2025.02.17 |
---|---|
[어셈블리어] x86 아키텍처 ( 16비트 ) 범용 레지스터 (0) | 2025.02.16 |
[어셈블리어] MOV 명령어 (0) | 2025.02.16 |
[어셈블리어] x86 아키텍처 ( 32비트 ) 범용 레지스터 (0) | 2025.02.15 |