어셈블리어
위키백과 ― 우리 모두의 백과사전.
어셈블리어(assembly語)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급언어이다.
기계어는 실제로 컴퓨터 CPU가 읽어서 실행할 수 있는 0과 1로 이루어진 명령어의 조합이다. 이러한 각 명령어에 대해 사람이 알아보기 쉬운 니모닉 기호(mnemonic symbol)를 정해 사람이 좀 더 쉽게 컴퓨터의 행동을 제어할 수 있도록 한 것이 어셈블리 언어이다.
예를 들어,
10110000 01100001
는 x86 계열 CPU의 기계어 명령이고, 이것을 어셈블리어로 옮겨쓰면 다음과 같다.
mov al, 061h
명령어 mov는 영어 move를 변형한 니모닉이며, al은 CPU안에 있는 변수를 저장하는 레지스터의 하나이다. 그리고, 061h는 16진수 61 (즉 십진수 97, 이진수 01100001)이다. 이 한 줄의 뜻은 16진수 61을 al레지스터에 넣으라는 뜻이며, 1과 0의 반복인 기계어보다 사람이 혼동없이 이해하기 한결 쉽다. 어셈블리어는 이러한 문장들로 구성된다.
어셈블리어를 기계어로 번역하는 것이 “어셈블러”(assembler)이며, 거꾸로 기계어를 어셈블리어로 바꾸는 것은 “디스어셈블러”(disassembler)이다. 고급언어와는 달리 어셈블리어는 간단한 문장에 대해 기계어와 일대일 대응 관계가 있지만, 자주 쓰이는 몇 명령은 둘 이상의 기계어 명령을 묶어 하나의 어셈블리 명령어에 대응시키기도 한다.
컴퓨터 아키텍처마다 사용하는 기계어가 달라지며, 따라서 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다. 컴퓨터 CPU마다 지원하는 오퍼레이션의 타입과 개수는 제각각이며, 레지스터의 크기과 개수, 저장된 데이터 형의 표현도 각기 다르다. 모든 범용 컴퓨터는 기본적으로 동일한 기능을 수행하지만, 기능을 어떤 과정을 거쳐 수행할지는 다를 수 있으며, 이런 차이는 어셈블리어에 반영되게 된다.
게다가 단일 명령 집합에 대해 여러 니모닉과 신택스가 대응될 수 있다. 그런 경우에는 제조사가 만든 문서에서 쓰이는 것이 가장 자주 쓰이게 된다.
[편집] 바깥 고리
|
|
|
|---|---|
| 산업용 | 델파이 · 루비 · 리스프 · 비주얼 베이직 · 스몰토크 · 스킴 · 어셈블리 · 얼랑 · 에이다 · 오브젝티브-C · 자바 · 자바스크립트 · 코볼 · 파이썬 · Perl · 포트란 · 프롤로그 · 하스켈 · ABAP · AWK · C · C++ · C# · ML · PHP · PL/SQL · SAS · sh · VB.NET |
| 교육용 | 로고 · 에펠 · 파스칼 |
| 역사적 의미가 있는 언어 |
베이직 · 시뮬라 · 알골 · 클리퍼 · 파워빌더 · APL · MUMPS · PL/I |