명령어는 연산부호, 피연산자로 이루어져있다.
연산부호(Operation Code)는 산술연산, 시프트, 논리연산, 보수 등의 연산을 정의한다.
ex) +, -, *, /, AND, OR, NOT 등...
피연산자(Operand)는 연산할 데이터를 저장한다. 보통 데이터보다는 데이터 주소를 저장한다.
A = B + C
A는 목적지 피연산자이며 연산 결과를 저장할 목적지 주소를 가지고있다.
B와 C는 소스 피연산자로, 연산에 필요한 데이터 주소를 가지고 있다.
피연산자의 주소를 나타내는 방식에는 직접 주소(direct address), 간접 주소(indirect address) 등이 있다.
직접 주소는 피연산자에 데이터가 있는 메모리 주소를 지정한다.
간접 주소는 피연산자에 데이터가 있는 메모리주소 정보를 지정한다.
이 둘의 차이점은 간접주소는 데이터 주소 정보를 통해 데이터 주소를 한번 읽고, 읽어낸 주소를 바탕으로 데이터를 읽어내 총 두 번 메모리를 참조하지만, 직접주소는 한번에 데이터를 읽을 수 있다는 점에 있다.
'운영체제' 카테고리의 다른 글
[운영체제 공부] 버퍼링과 스풀링 (0) | 2020.01.21 |
---|---|
[운영체제 공부] 운영체제에 대해 (0) | 2020.01.17 |
[운영체제 공부] 메모리 계층 구조 (0) | 2020.01.14 |
[운영체제 공부] 캐시(Cache) (0) | 2020.01.07 |
[운영체제 공부] CPU에 대해 (0) | 2020.01.06 |