8.6 데이터 전송과 처리


  • 기본적으로 컴퓨터의 종류가 다르다면 서로 어떤 특정 명령어를 처리할 떄 사용하는 기계어가 다르다.
  • 기계어는 다르더라도 명령어의 형태는 유사하다. 그래서 이번에 기본 컴퓨터가 컴퓨터 구조를 이해하는데 도움이 될 수 있다.

데이터 전송 명령어(Data transfer instructions)

K-015

  • Mnemonic : 명령어를 기호로 표현한 것, 프로그램 기호

  • Load : 메모리로부터 ALU로 데이터를 전송한다.
  • Store : 특정한 레지스터로 부터 메모리에 데이터를 저장한다. (특정한 데이터를 영구적으로 저장한다.)
  • Move : 레지스터로부터 다른 레지스터로 옮긴다. 레지스터에 저장된 값을 다른 레지스터로 옮긴다.
  • Exchange : 두 대상에 저장되어 있는 데이터를 서로 교환한다. swap data라고도 얘기한다. 대상은 레지스터끼리가 될수 도 있고 레지스터와 메모리간 교환할 수 도 있다.
  • Input / Output : 입력되거나 출력되는 데이터를 ALU로 옮긴다.
  • push : ALU로부터 메모리 스택으로 데이터를 옮긴다.
  • Pop : 메모리에 있는 데이터를 ALU로 옮긴다.

K-016

  • 직접 주소 : 주소 레지스터에 있는 값을 AC에 저장한다.
  • 간접 주소 : 메모리의 주소가 표현된 위치로부터 값을 가지고 온다.

데이터 처리 명령어 (Data manipulation instructions)

  • 산술 연산

  • K-017

    • 사칙연산을 말한다.

    • 이런 연산으로 산술연산을 수행한다. 그 때 사용하는 데이터의 타입이 조금씩 달라진다.

    • 데이터 타입에 따라 연산코드에 해당하는 정의가 달라지기도 한다. (C언어에서 정수형 값의 덧셈과 정수와 실수의 값의 덧셈이 달라지듯이)

    • 예) ADDF, ADDI

  • 논리 연산 과 비트 형태의 처리 연산

    • K-018
    • 보수, and, or, XOR = 논리라고 볼 수 있다.
    • 나머지는 비트처리 명령어이다.
  • 쉬프트 연산

K-019

  • 특정 컴퓨터에서는 여러개의 필드를 두는 경우가 있다.
    • 다음과 같다
    • OP : opcode를 의미
    • REG : 레지스터를 지정하는 부분
    • TYPE : 쉬프트의 종류를 설정하는 부분
    • RL : 왼쪽인지 오른쪽인지 표현하는 부분
    • COUNT : 몇번 할 건지
  • 예)
    • OP=SHIFT, REG=R1, TYPE=Logical, RL=L, COUNT=5
    • 쉬프트 동작을 실행할 껀데 R1에서 논리적으로 왼쪽으로 5번 쉬프트할 것이다라는 의미