-> 블로그 이전

[컴퓨터구조] 정보의 표현과 저장

2022. 1. 16. 15:15Major`/컴퓨터구조

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) 최종적으로 어셈블러어셈블리어  기계어로 번역

 


 

기계 명령어 형식

LOAD A, X

▶ 연산코드 (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)가 쌓인다

  • → 실질적으로, 컴퓨터는 두 영역을 구분하지는 않는다