티스토리 뷰

컴퓨터의 정보 표현

 

 

컴퓨터가 사용하는 정보는 프로그램 코드(Program code)와 데이터(Data)가 있다.

컴퓨터는 그러한 정보들을 2진수(Binary number)로 나타내는 비트(bit)들의 조합으로 표현한다.

 

 


컴파일러

 

프로그램은 C, PASCAL, FORTRAN, COBOL 등 고급 언어(high-level language)로 작성된다.

 

고급 언어들은 영어와 숫자로 이루어져 사람들이 보기 편하도록 구성되었지만 컴퓨터는 전혀 이해하지 못한다. 하여 프로그램은 컴파일러(compiler)라는 소프트웨어에서 하드웨어가 이해할 수 있는 언어로 번역한다.

 

컴파일러를 통해 번역된 언어는 기계어(machine language) 혹은 기계 코드(machine code)로 명칭된다.

 

 

어셈블리

고급 언어는 어디서든 거의 동일하지만 기계어는 CPU마다 서로 다르다. 이러한 언어의 차이를 해결하기 위해 고급 언어와 기계어 사이의 각 CPU 고유 중간 언어 어셈블리 언어(assembly language) 혹은 어셈블리 명령어(assembly instruction)가 존재한다.

 

어셈블리 언어로 작성된 프로그램은 어셈블리 프로그램(assably program)으로 지칭된다.

 

컴파일러의 번역 순서는 '고급-언어 > 어셈블리 > 기계어'로써 다음과 같다.

* Java의 경우에는 바이트 코드로 변환한다.

 

고급 언어

  1. X와 Y를 더한다.
  2. 더한 값을 Z에 저장한다.

 

어셈블리어

LOAD A, X 메모리 X번지의 내용을 읽어(read) 레지스터 A에 적재(load)한다.
ADD A, Y 메모리 Y번지 내용을 읽어(read) 레지스터 A에 적재된 값과 더하고, 결과를 레지스터 A에 적재(write)한다.
STOR Z, A 레지스터 A의 값을 메모리 Z번지에 저장(stor)한다.

* 어셈블리어에서 사용된 'LOAD', 'ADD', 'STOR'은 명령어의 동작을 개략적 짐작할 수 있도록 하는 니모닉스(mnemonics)이다.

 

기계어

  • 어셈블리 언어로 작성된 프로그램을 어셈블러(assembler) 소프트웨어가 기계어 프로그램으로 번역한다.
  • 예제에서는 8비트 기계어로 번역되었다.

 

명령어 형식

위 예제에서 기계어로 번역된 부분에 대해 더 자세하게 알아보자.

살펴보기 위한 명령어는 어셈블리 언어의 'LOAD A, X' 명령어를 선택한다.

 

연산코드 필드(op code field)

  • 연산코드 필드는 명령어의 종류, 기능을 의미한다.
  • CPU가 어떤 연산을 수행해야 하는지를 결정하는 정보이다.
  • 예제의 지정된 연산코드 '001'이 "레지스터 A로 적제하라"는 연산을 지정해주는 비트들이다.

 

오퍼랜드 필드(operand field)

  • 오퍼랜드 필드는 명령어에서 실제 연산을 수행하는 데이터나 주소 값을 지정하는 부분이다.
    • 오퍼랜드 필드는 주소 값으로 메모리에서 레지스터로 데이터를 적재하거나 호출할 수 있다.
    • 오퍼랜드 필드 자체를 레지스터에 등록하여 데이터로 사용할 수 도 있다.
  • 연산코드에 따라 필요한 입력 데이터 혹은 연산 대상의 주소등을 포함한다.
  • 예제의 지정된 오퍼랜드 '00101'은 적제된 데이터가 저장될 기억장치 주소를 가리킨다.

 

위 두 정보를 종합하여 '00100101'은 "기억장치 5번지의 내용을 읽어 레지스터 A에 저장한다"라는 명령이 된다.

 

또한, 비트 개수를 확인하여 명령어 형식(instruction format)을 확인할 수 있는데, 이는 지정할 수 있는 연산의 수와 기억 장소들의 최대수를 알려준다.

 

위 예제를 기준으로 설명하면 다음과 같다.

연산코드 필드 오퍼랜드 필드
8비트의 앞 3자리 $$2^3 = 8$$ 8비트의 뒤 5자리 $$2^5 = 32$$
총 8개의 명령어 생성 가능 총 32개의 주소 표현 가능

 

 

단어

단어(word)는 CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹을 말한다.

 

번역된 기계어들은 순서대로 메모리에 저장된다. 위 예제의 어셈블리 명령어와 X, Y, Z 값의 주소도 순서대로 저장되어있다.

 

 

단어의 길이는 CPU의 하드웨어 구조에 따라 8, 16, 32, 64 비트 등 다양하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함