8.6 데이터 전송과 처리
- 기본적으로 컴퓨터의 종류가 다르다면 서로 어떤 특정 명령어를 처리할 떄 사용하는 기계어가 다르다.
- 기계어는 다르더라도 명령어의 형태는 유사하다. 그래서 이번에 기본 컴퓨터가 컴퓨터 구조를 이해하는데 도움이 될 수 있다.
데이터 전송 명령어(Data transfer instructions)
-
Mnemonic : 명령어를 기호로 표현한 것, 프로그램 기호
- Load : 메모리로부터 ALU로 데이터를 전송한다.
- Store : 특정한 레지스터로 부터 메모리에 데이터를 저장한다. (특정한 데이터를 영구적으로 저장한다.)
- Move : 레지스터로부터 다른 레지스터로 옮긴다. 레지스터에 저장된 값을 다른 레지스터로 옮긴다.
- Exchange : 두 대상에 저장되어 있는 데이터를 서로 교환한다. swap data라고도 얘기한다. 대상은 레지스터끼리가 될수 도 있고 레지스터와 메모리간 교환할 수 도 있다.
- Input / Output : 입력되거나 출력되는 데이터를 ALU로 옮긴다.
- push : ALU로부터 메모리 스택으로 데이터를 옮긴다.
- Pop : 메모리에 있는 데이터를 ALU로 옮긴다.
- 직접 주소 : 주소 레지스터에 있는 값을 AC에 저장한다.
- 간접 주소 : 메모리의 주소가 표현된 위치로부터 값을 가지고 온다.
데이터 처리 명령어 (Data manipulation instructions)
-
산술 연산
-
-
사칙연산을 말한다.
-
이런 연산으로 산술연산을 수행한다. 그 때 사용하는 데이터의 타입이 조금씩 달라진다.
-
데이터 타입에 따라 연산코드에 해당하는 정의가 달라지기도 한다. (C언어에서 정수형 값의 덧셈과 정수와 실수의 값의 덧셈이 달라지듯이)
-
예) ADDF, ADDI
-
-
논리 연산 과 비트 형태의 처리 연산
-
- 보수, and, or, XOR = 논리라고 볼 수 있다.
- 나머지는 비트처리 명령어이다.
- 쉬프트 연산
- 특정 컴퓨터에서는 여러개의 필드를 두는 경우가 있다.
-
- 다음과 같다
- OP : opcode를 의미
- REG : 레지스터를 지정하는 부분
- TYPE : 쉬프트의 종류를 설정하는 부분
- RL : 왼쪽인지 오른쪽인지 표현하는 부분
- COUNT : 몇번 할 건지
- 예)
-
- OP=SHIFT, REG=R1, TYPE=Logical, RL=L, COUNT=5
- 쉬프트 동작을 실행할 껀데 R1에서 논리적으로 왼쪽으로 5번 쉬프트할 것이다라는 의미