2023. 10. 21. 18:16
반응형
어셈블리어(영어: assembly language) 또는 어셈블러 언어(assembler language)[1]는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다.
컴퓨터 구조에 따라 사용하는 기계어가 달라지며, 따라서 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다. 컴퓨터 CPU마다 지원하는 오퍼레이션의 타입과 개수는 제각각이며, 레지스터의 크기와 개수, 저장된 데이터 형의 표현도 각기 다르다. 모든 범용 컴퓨터는 기본적으로 동일한 기능을 수행하지만, 기능을 어떤 과정을 거쳐 수행할지는 다를 수 있으며, 이런 차이는 어셈블리어에 반영되게 된다.
게다가 단일 명령 집합에 대해 여러 니모닉과 통사론이 대응될 수 있다. 그런 경우에는 제조사가 만든 문서에서 쓰이는 것이 가장 자주 쓰이게 된다.
주로 다음과 같은 작업에 사용됩니다:
- 운영 체제 개발: 운영 체제 커널을 개발하거나 운영 체제의 핵심 부분을 작성하는 데 어셈블리어가 사용됩니다. 이것은 운영 체제의 성능을 향상시키고 하드웨어와 상호 작용하기 위해 필요한 저수준 제어를 제공합니다.
- 임베디드 시스템: 어셈블리어는 제한된 자원을 가진 임베디드 시스템 (예: 마이크로컨트롤러)을 프로그래밍하는 데 많이 사용됩니다. 이러한 시스템에서는 성능과 메모리 사용량을 최적화해야 하므로 어셈블리어가 필요할 수 있습니다.
- 하드웨어 드라이버: 하드웨어를 제어하는 드라이버는 어셈블리어를 사용하여 작성될 수 있습니다. 이를 통해 하드웨어와 효율적으로 상호 작용할 수 있습니다.
- 성능 최적화: 어셈블리어는 성능이 중요한 응용 프로그램에서 성능 최적화를 위해 사용됩니다. 특히 반복적이고 계산 집약적인 작업에서 성능을 향상시키는 데 도움이 됩니다.
- 보안 연구와 해킹: 보안 연구자와 해커는 어셈블리어를 사용하여 시스템의 보안 취약점을 분석하고 악의적인 코드를 작성하는 데 활용할 수 있습니다.
- 어셈블리어는 고수준 언어에 비해 낮은 수준의 언어이기 때문에 복잡하고 오류를 발생시키기 쉽습니다. 그러나 어셈블리어를 사용하면 하드웨어에 대한 직접적인 제어를 할 수 있으며, 특정 상황에서는 최적의 성능을 제공할 수 있습니다.
반응형
'컴퓨터 잡다학메모' 카테고리의 다른 글
커널(kernel)이란? (0) | 2023.10.22 |
---|---|
버퍼(Buffer, 완충기억기)의 사용 및 위치 (0) | 2023.10.21 |
인공지능이 무엇과 연동되어 동작하는지 메모 (0) | 2023.10.21 |
컴퓨터 운영체제의 목적 (0) | 2023.10.19 |
리눅스 배포판 중에서 가장 많은 다운로드를 받는 것 메모 (0) | 2023.10.19 |
콘텐츠 내 자동삽입광고