-
[시스템프로그래밍] 3강 기계 명령어의 구성, 주소지정방식프로그래밍/시스템프로그래밍 2014. 4. 25. 03:56반응형
* 명령어의 구성
연산코드(Operation code)
연산 코드는 수행할 연산을 지정한다.
연산은 니모닉에 의해 표현
2. 피연산자(operand)의 구성
피연산자에 저장될 데이터의 형태는 주소, 수 , 문자, 논리 등이 있다.
주소는 주기억장치의 주소이거나 레지스터의 주소를 말한다
수는 정수, 고정 소수점, 부동 소수점 수, BCE등을 들 수 있다.
3. 명령어의 길이
명령어의 길이는 레지스터의 개수, 주소지정방식의 종류, 명령어의 종류에 따라서 달라질 수 있다.
기억 장치와 관련하여 명령어 길이를 살펴보면 기억장치의 용량이 많은 경우는 주소의 수가 많아지므로 오퍼랜드의 비트 수가 많아져야 한다
기억장치 용량과 기억장치 조직에 의해서 주소를 지정하는 오퍼랜드 부분에 영향을 준다.
* 주소지정방식
주소지정방식이란 연산에 필요한 데이터의 위치정보를 어떻게 나타낼 것인가에 대한 방식
제한된 명령어 비트들을 적절하게 이용하여 사용자 혹은 프로그래머로 하여금 여러 가지 방법으로 오퍼랜드를 지정하고 더 큰 용량의 기억장치를 사용할수 있도록 한다.
즉치 주소지정방식 (immediate addressing mode)
데이터가 명령어에 포함되어 있는 방식
오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터이며 프로그램에서 레지스터들이나 변수의 초깃값을 어떤 상수값으로 세트하는데 유용
2. 직접 주소지정방식 (direct addressing mode)
오퍼랜드의 내용을 실제 데이터의 주소가 들어있는 방식
실제 데이터에 접근하기 위해서는 주기억장치를 참조하여야 하는 횟수는 1번
지정할 수 있는 기억 장소의 수가 제한되며 많은 수의 주소를 지정하는 것은 불가능
3. 간접 주소지정방식 (indirect addressing mode)
오퍼랜드의 내용이 실제 데이터의 주소를 가진 포인터의 주소인 방식
실제 데이터에 접근하기 위해서는 주기억장치를 최소한 2번이상 참조해야한다
4. 레지스터 주소지정방식 (implied addressing mode)
연산에 사용할 데이터를 레지스터에 저장하는 방식
오퍼랜드 부분에는 레지스터번호, 유효주소인 레지스터 번호가 저장
오퍼랜드 필드가 레지스터들이 번호를 나타내고 있기 때문에 비트 수가 적오도 가능
데이터가 레지스터에 저장이 되어 있으므로 주기억장치를 참조할 필요가 없다.
데이터가 저장될 수 있는 공간이 CPU내부 레지스터들로 제한
5. 베이스 주소지정방식 (base addressing mode)
유효주소는 명령어 주소부분과 베이스 레지스터로 구성
기준이 되는 주소인 베이스 레지스터의 내용과 변위값인 주소 필드의 내용을 더하여 오퍼랜드의 유효주소를 결정하는 방식
프로그램을 재배치할 때 이용하여 다중 프로그래밍 기법에 많이 사용
6. 인덱스 주소지정방식 (indexed addressing mode)
명령어의 주소 필드가 베이스 주소로 사용되고 레지스터 필드가 지정하는 내용이 변위로서 더해지는, 유효주소에 명령의 주소부분과 인덱스 레지스터를 가지고 있는 방식
7. 상대 주소지정방식 (relative addressing mode)
유효주소가 명령어의 주소부분과 프로그램 카운터로 구성되어 있어 주소 필드 내용과 PC의 내용을 더하여 유효주소를 결정하는 방식
8. 스택 주소지정방식 (stack addressing mode)
묵시적 주소 지정의 한 형태로 오퍼랜드가 항상 스택 포인터가 가리키는 스택의 최상위에 위치하는 방식
반응형'프로그래밍 > 시스템프로그래밍' 카테고리의 다른 글
[시스템프로그래밍] 6강 매크로, 매크로의 기능, 매크로 프로세서의 설계 (0) 2014.04.26 [시스템 프로그래밍] 5강 어셈블러 개요, 이중 패스 어셈블러, 이중 패스 어셈블러의 설계, 다중 패스 어셈블러, 테이블 처리 (0) 2014.04.26 [시스템프로그래밍] 4강 어셈블리어 개요, 어셈블리 명령어, 어셈블러 지시어(의사 명령어) (0) 2014.04.26 [시스템프로그래밍] 2강 정보의 단위, 진법, 컴퓨터 조직, 주기억장치의 작동, 명령어 수행 사이클, 데이터의 표현, 인터럽트 (0) 2014.04.25 [시스템프로그래밍] 1강 컴퓨터의 구성, 사용자 프로그램의 처리과정 (0) 2014.04.24