명령어는 연산부호, 피연산자로 이루어져있다.

연산부호(Operation Code)는 산술연산, 시프트, 논리연산, 보수 등의 연산을 정의한다.

ex) +, -, *, /, AND, OR, NOT 등...

피연산자(Operand)는 연산할 데이터를 저장한다. 보통 데이터보다는 데이터 주소를 저장한다.

 

A = B + C 

A는 목적지 피연산자이며 연산 결과를 저장할 목적지 주소를 가지고있다.

B와 C는 소스 피연산자로, 연산에 필요한 데이터 주소를 가지고 있다.

 

피연산자의 주소를 나타내는 방식에는 직접 주소(direct address), 간접 주소(indirect address) 등이 있다.

직접 주소는 피연산자에 데이터가 있는 메모리 주소를 지정한다.

R1 자체가 주소이기 때문에 한번에 데이터에 접근한다.

간접 주소는 피연산자에 데이터가 있는 메모리주소 정보를 지정한다.

R0가 데이터 주소 정보이고, 30H가 데이터 주소이다. 그림과 같이 두 번 메모리를 참조하게 된다.

이 둘의 차이점은 간접주소는 데이터 주소 정보를 통해 데이터 주소를 한번 읽고, 읽어낸 주소를 바탕으로 데이터를 읽어내 총 두 번 메모리를 참조하지만, 직접주소는 한번에 데이터를 읽을 수 있다는 점에 있다.

 

 

 

+ Recent posts