기계어
기계어 또는 기계 코드는 이진 숫자(1과 0)로 이루어진 저급 언어입니다. 고급 언어인 Swift와 C++ 같은 언어는 컴퓨터에서 코드를 실행하기 전에 컴파일하여 기계어로 변환해야 합니다.
컴퓨터는 디지털 장치이므로 이진 데이터만 인식합니다. 모든 프로그램, 동영상, 이미지 및 텍스트의 문자는 이진수로 표현됩니다. 이 이진 데이터 또는 기계 코드는 CPU에서 입력으로 처리됩니다. 그 결과인 출력은 운영 체제나 애플리케이션으로 전송되고, 운영 체제나 애플리케이션은 데이터를 화면에 표시합니다. 예를 들어 문자 "A"의 ASCII 값은 기계 코드에서 01000001이지만, 이 데이터는 화면에 "A"로 표시됩니다. 이미지에는 각 픽셀의 색상을 결정하는 이진 값이 수천 개 또는 수백만 개 포함될 수 있습니다.
기계 코드는 1과 0으로 이루어져 있지만, 서로 다른 프로세서 아키텍처는 서로 다른 기계 코드를 사용합니다. 예를 들어 RISC 아키텍처를 사용하는 PowerPC 프로세서는 CISC 아키텍처를 사용하는 Intel x86 프로세서와 다른 코드를 필요로 합니다. 프로그램이 올바르게 실행되려면 컴파일러가 올바른 프로세서 아키텍처에 맞게 고급 소스 코드를 컴파일해야 합니다.
기계어와 어셈블리어 비교
기계어와 어셈블리어는 모두 저급 언어이지만, 컴퓨터 언어의 계층 구조에서 기계 코드는 어셈블리어보다 하위에 있습니다. 어셈블리어에는 mov, add, sub와 같은 사람이 읽을 수 있는 명령어가 포함되지만, 기계어에는 단어나 문자조차 포함되지 않습니다. 일부 개발자는 프로그램을 최적화하기 위해 어셈블리어를 직접 작성하지만, 기계 코드를 작성하지는 않습니다. 소프트웨어 컴파일러를 작성하는 개발자만 기계어를 고려해야 합니다.
NOTE: 기계 코드는 기술적으로 이진 데이터로 이루어져 있지만, 16진수 값으로 표현할 수도 있습니다. 예를 들어 이진수로 01011010인 문자 "Z"는 16진수 코드에서 5A로 표시할 수 있습니다.
지식 테스트하기