[컴퓨터구조] 정보의 표현과 저장
2022. 1. 16. 15:15ㆍMajor`/컴퓨터구조
Computer가 받아들이고 처리하는 정보
- 2진수 비트들로 표현된 프로그램 코드 / 데이터
프로그램 코드 (Program Code)
1. C, Java, Python 등,... 고급언어를 이용해서 작성
- 고급언어는 영문자/숫자들로 이루어져 있어서 컴퓨터가 읽을 수 있는 언어(기계어)로 변경해야 한다
- 기계어는 CPU마다 서로 다르다
2. 중간단계에서 컴파일러를 통해서 고급언어→ 어셈블리어(저급 언어)으로 번역
- 각 CPU별 언어상의 차이를 해결하기 위해 (고급 언어 / 기계어) 사이에 어셈블리 언어가 존재
3. 최종적으로 어셈블러를 통해서 어셈블리어 → 기계어로 번역
※ 컴파일러 (Compiler)
- 고급언어 프로그램을 기계어 프로그램/어셈블리 프로그램으로 번역하는 소프트웨어
※ 어셈블러 (Assembler)
- 어셈블리 프로그램을 기계어 프로그램으로 번역하는 소프트웨어
- 니모닉스(Mnemonics) : 어셈블리 명령어가 지정하는 연산을 가리키는 알파벳 기호 ◆ (LOAD / ADD / STOR /,...)
※ Example
(1) 고급언어 Z = X + Y를 중간 단계에서 컴파일러가 고급언어→ 어셈블리어로 번역을 한다
- LOAD A, X : A에 X의 내용을 LOAD
- ADD A, Y : A에 LOAD된 내용에 Y의 내용을 ADD
- STOR Z, A : Z에 A의 내용을 STORE
(2) 최종적으로 어셈블러가 어셈블리어 → 기계어로 번역
기계 명령어 형식
▶ 연산코드 (OP code field)
- CPU가 수행할 연산을 지정해 주는 비트
- if 연산코드의 비트 수 : 3 → 지정될 수 있는 연산의 최대 수 : 2³=8
- if 연산코드의 비트 수 : 4 → 지정될 수 있는 연산의 최대 수 : 2⁴=16
>> 지정될 수 있는 연산의 최대 수 : 2op code의 비트 수
- 예제의 경우, op code field가 1이므로 LOAD
▶ 오퍼랜드 (Operand field)
- 연산에 사용될 Data / 해당 Data가 저장되어 있는 기억장치 주소
>> 주소지정 할 수 있는 기억 장소들의 최대 수 : 2;Operand의 비트 수
- 예제의 경우, Operand field가 5이므로, 기억장치 5번지의 내용을 레지스터 A에 저장(op code field = 1)
→ 번역된 기계어(프로그램 코드(명령어)/데이터)들은 순서대로 기억장치에 저장
▶ 단어(word)단위로 저장된다
단어(word)
- CPU에 의해서 한 번에 처리될 수 있는 bit들의 그룹
- CPU의 명령어 길이와 같다
- 낮은 주소에 명령어(Opcode)가 쌓이고
- 높은 주소에 데이터(Operand)가 쌓인다
- → 실질적으로, 컴퓨터는 두 영역을 구분하지는 않는다