[컴퓨터 구조] 명령어란?
2024. 4. 17. 22:56ㆍComputer Science/컴퓨터 구조
이제 더 현실적인 얘기로 컴퓨터를 이해해보고자 합니다.
컴퓨터란 무엇일까요? 만약, 누군가 컴퓨터에 대해 물어보면 우리는 어떻게 대답해야할까요?
저는 명령어를 처리하는 복잡한 계산기라고 대답할 것 같습니다.
명령어란, 컴퓨터가 이해할 수 있는 언어 단위입니다. 인간은 프로그래밍 언어를 통해 프로그램을 만들고 컴퓨터로 실행시킬 수 있습니다. 정확히는 프로그래밍 언어로 소스 코드를 작성합니다. 소스 코드는 인간이 이해할 수 있도록 문법이 구성되어 있습니다. 하지만, 컴퓨터는 0과 1밖에 이해하지 못하기 때문에, 컴퓨터가 이해할 수 있도록 아래와 같은 변환해주는 과정이 필요합니다.
프로그래밍 언어(A = 10) -> 어셈블리 언어(Store A 10)-> 기계어(1010 1010 1000 1010..)
인간이 이해하기 좋을 수록 고급언어라고 하며 컴퓨터에 가까운 언어는 저급언어라고 합니다.
고급언어 | C, C++, Java, Python .. |
저급언어 | 어셈블리어 |
어셈블리 언어에 대해 조금 더 알아보겠습니다.
명령어 = Opcode + Operand
Opcode란, Store, Add, Sub 등 연산자를 의미하고, Operand는 연산자를 적용할 대상을 의미합니다.
다시 위의 예제에서 어셈블리어를 보면,
Store -> Opcode,
A, 10 -> Operand
임을 알 수 있습니다.
그런데 우리는 A를 변수명 그대로 사용하고 있습니다. 정확히 말하자면 어셈블리어로 변환될 때, A의 메모리 주소를 사용합니다. 이렇게 메모리의 주소값으로 데이터를 저장하거나 찾는 방법을 주소 지정 방식이라 합니다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 캐시 메모리(Cache Memory)와 지역성(Locality) (0) | 2024.05.01 |
---|---|
[컴퓨터 구조] 메모리(Memory)란? (0) | 2024.04.23 |
[컴퓨터 구조] CPU / 명령어 사이클( Instruction Cycle ) (1) | 2024.04.18 |
[컴퓨터 구조] 컴퓨터를 구성하는 요소 (0) | 2024.04.17 |