코딩자율학습단/컴퓨터구조와 운영체제

[컴구&OS] 2장. 데이터와 명령어

binary는 호남선 2025. 7. 1. 22:27

Preview

  • 데이터 단위
  • 데이터 표현법
  • 데이터 연산
  • 명령어

본 게시물은 기술노트알렉, 「코딩 자율학습 컴퓨터 구조와 운영체제」, 길벗출판사, 2025 를 학습하고 작성되었습니다.


데이터 단위

  • 비트(bit): 가장 작은 단위, 0과 1
  • 니블(nibble): 4bit 모음
  • 바이트(byte): 데이터 처리와 저장의 기본 단위, 8bit 모음

데이터 표현법

이진수

  • 0과 1 사용해 나타낸 수
  • 컴퓨터에서 직접 연산하거나 데이터 저장할 때 사용

십육진수

  • 숫자 0-9, 알파벳 A-F 사용해 나타낸 수
  • 코드 작성, 메모리주소, 색상 코드 나타낼 때 사용

정수 표현법

  • 부호와 절댓값: 최상위 비트를 부호 비트로 사용, 나머지 비트는 절댓값의 이진수로 채움
  • 1의 보수: 양수 모든 비트 반전시켜 음수 표현
  • 2의 보수: 양수 모든 비트 반전시키고 1을 더해 음수 표현

실수 표현법

  • 고정 소수점: 부호 비트, 정수부, 소수부로 나눠 표현
  • 부동 소수점: 부호 비트, 지수(수의 크기), 가수(실제 숫자)로 나눠 표현

문자 표현법

인코딩: 문자나 기호를 바이너리 형식으로 변환하는 과정

ASCII: 128개 문자(대소문자, 숫자, 공백, 특문, 제어문자) 표현

유니코드: 전세계 모든 문자 표현, 가변 길이 문자 인코딩 방식 사용(UTF-8, UTF-16, UTF-32등)

BCD 코드: 십진수 각 자리 숫자를 4bit 이진수로 변환해 표현

 

데이터 연산

산술 연산: 숫자 데이터 대상으로 수행, 사칙연산 & 나머지 연산

논리 연산: bool 값 대상으로 수행, AND(&&), OR(||), NOT(!)

비트 연산: 이진수 비트 단위 연산, AND(&), OR(|), XOR(^), NOT(~), Shfit(<<,>>)

명령어

기계어: 이진 코드로 구성, 컴퓨터가 이해하고 실행할 수 있음

어셈블리어: 사람이 이해하기 쉽게 만든 저급(low-level) 언어, 어셈블러로 기계어로 변환하여 실행

 

컴파일 방식: 컴파일러가 소스 코드를 한 번에 기계어로 변환 후 실행

인터프리터 방식: 인터프리터가 소스 코드를 한 줄씩 해석해 실행

명령어 구조

  • 명령어는 연산 코드와 오퍼랜드의 조합
  • 연산 코드: 수행할 동작의 종류
  • 오퍼랜드: 피연산자, 연산할 데이터나 데이터가 저장된 주소 지정

주소 지정 방식

주소 지정 방식: 데이터가 저장된 주소에 어떻게 접근해 데이터 참조할지 결정하는 방법

  1. 즉시 주소 지정
    : 실제 데이터 값 직접 지정
    ex) MOV R1(레지스터) #5(실제 데이터)
  2. 레지스터 주소 지정
    : 레지스터 지정하고 레지스터에 저장된 데이터 사용
    ex) ADD R1(레지스터) R2(레지스터)
  3. 직접 주소 지정
    : 직접 메모리 주소에서 데이터 가져오거나 저장
    ex) MOV R1(레지스터) 1000(데이터가 저장된 메모리 주소)
  4. 레지스터 간접 주소 지정
    : 레지스터 명시하고, 해당 레지스터에 데이터가 저장된 메모리 주소 저장
    ex) MOV R1(레지스터) [R2](데이터가 저장된 메모리 주소를 가리키는 레지스터)
  5. 인덱스 주소 지정
    : 기본 주소와 인덱스용 레지스터 주소 지정
    ex) MOV R1(레지스터) 1000[R2](기본 주소 1000 + R2에 저장된 값)