목차
1. 주소 지정 방식
2. 어드레싱 모드 기법 사용의 목적
3. 컴퓨터의 제어장치가 갖는 사이클
4.어셈블리 명령어의 형식
어드레싱 모드 종류(addressing mode)
1. 즉시 지정방식(immediate addressing mode)
2. 직접 주소 지정 방식(direct addressing mode)
3. 간접 주소 지정 방식(indirect addressing mode)
4. 상대 주소 지정 방식(relative addressing mode)
5. 레지스터 주소 지정 방식(register addressing mode)
6. 간접 레지스터 주소 지정방식(indirect register addressing mode)
7. 인덱스 주소 지정방식(indexed addressing mode)
8. 베이스 레지스터 주소지정 방식(base register addressing mode)
2. 어드레싱 모드 기법 사용의 목적
3. 컴퓨터의 제어장치가 갖는 사이클
4.어셈블리 명령어의 형식
어드레싱 모드 종류(addressing mode)
1. 즉시 지정방식(immediate addressing mode)
2. 직접 주소 지정 방식(direct addressing mode)
3. 간접 주소 지정 방식(indirect addressing mode)
4. 상대 주소 지정 방식(relative addressing mode)
5. 레지스터 주소 지정 방식(register addressing mode)
6. 간접 레지스터 주소 지정방식(indirect register addressing mode)
7. 인덱스 주소 지정방식(indexed addressing mode)
8. 베이스 레지스터 주소지정 방식(base register addressing mode)
본문내용
위와 같은 경우에는 간접 작업 레지스터 주소 지정 방식의 OR명령임을 나타내는 8비트 길이의 OP코드와, 각각 4비트의 길이를 갖는 R3와 R6를 가리키는 두 개의 피연산자의 조합으로 명령어가 구성된다. 이 때 명령어가 수행되는 과정은 다음과 같다.
먼저 작업 레지스터 주소 지정 방식을 이용하여 R3를 가리키는 4비트의 피연산자를 이용하여 OR 연산을 위한 첫 번째 데이터의 내용, 즉 R3값을 읽어 온다. 여기서 4비트 중 상위 1비트는 RP0나 RP1을 가리키고, 하위 3비트는 레지스터 포인트에 의해 지정된 8개의 작업 레지스터 블록들 중의 한 레지스터 가리킨다.
역시 작업 레지스터 주소 지정 방식을 이용하여 R6에 저장된 8비트 길이의 레지스터 값을 알아낸다.
R6값이 가리키는 OR 연산의 두 번째 데이터를 읽어온다.
OR 연산을 수행하고 그 결과를 R3 레지스터에 저장한다.
메모리 영역에 접근하기 위한 간접 작업 레지스터 주소 지정방식은 레지스터 파일에 접근하기 위한 간접 작업 레지스터 주소 지정 방식과 거의 유사하다. 다만 데이터가 메모리 영역에 저장되어 있는 경우에는 16비트 길이의 주소 값을 가지므로 이를 저장하기 위해서는 레지스터 쌍이 필요하다는 점이 다를 뿐이다.
따라서 레지스터 포인터가 가리키는 8개의 레지스터로 구성된 하나의 레지스터 블록에서는 외부 메모리 지정을 위하여 4개의 레지스터 쌍을 사용할 수 있게 된다. 예를 들어
LDCR5, @RR6
와 같은 명령어의 피연산자 부분에는 RR6를 가리키는 4비트가 주어지는데, 이 중에서
가장 상위 1비트는 레지스터 포인터를 두 번째와 세 번째의 두 비트는 4개의 레지스터 쌍 중의 하나를 가리키게 된다.
7. 인덱스 주소 지정방식(indexed addressing mode)
인덱스 주소 지정 방식(indexed addressing mode) 은 명령어의 피연산자에 특정 주소 값과 오프셋을 주어서 이들의 합으로 명령 수행에 필요한 데이터의 주소를 결정하는 방식이다. 이는 상위 수준 언어에서 사용하는 배열과 같은 개념이다.
인덱스 주소 지정 방식으로 레지스터 파일을 접근할 때 시작 주소 값은 명령어의 피연산자로, 오프셋은 레지스터를 통하여 주어지며, 이들은 각각 8비트의 길이를 가지며, 이 둘을 합한 결과 역시 8비트의 길이를 갖는다. 프로그램 메모리 영역을 접근할 때는 16비트로 된 시작 주소 값은 레지스터를 통하여, 그리고 8비트 혹은 16비트의 오프셋은 명령어의 피연산자로 주어진다.
인덱스 주소 지정 방식으로 레지스터 파일을 접근할 수 있는 명령은 LD명령뿐이며, 내부 프로그램 메모리나 외부 데이터 메모리에 접근하기 위해서는 각각 LDC와 LDE 명령을 사용해야 한다.
인덱스 주소 지정 방식의 예를 보이기 위하여
LDR0, #10H[R1]
의 명령어가 수행되는 경우를 고려해 보자. 인덱스 주소 지정 방식으로 주어진 #10H[R1]의 피연산자로부터 데이터를 읽어오기 위해서는 먼저 작업 레지스터 주소 지정 방식을 이용하여 R1으로부터 오프셋을 읽어오고, 이에 시작 주소 값인 10H를 더하여 실제 데이터가 저장된 레지스터의 주소를 계산한다.
8비트 오프셋을 이용하여 프로그램 메모리나 데이터 메모리 영역에 접근하기 위한 인덱스 주소 지정 방식의 예는 다음과 같다.
LDC R4, #04H[RR2]
이 명령어에서는 RR2레지스터 쌍에 저장된 16비트 주소값과 04H를 더하여 메모리 영역 내의 실제 데이터가 저장된 주소를 결정한다.
LDCR4, #1000H[RR2]
위의 명령어는 시작 주소나 오프셋 모두 16비트 길이로 주어진 경우이다. 8비트 오프셋이 주어진 경우와 비슷하게 실제 데이터가 주어진 주소를 계산하기 위하여 RR2에 저장된 내용과 1000H가 더해진다.
장점 - Array 구조에 유용하다.
단점 - 시간 소요가 많다.
8. 베이스 레지스터 주소지정 방식(base register addressing mode)
명령어의 오퍼랜드 부분과 베이스 레지스터의 내용이 더해져서 유효 번지가 결정된다. 인덱스 주소 지정 방식에서 인덱스 레지스터 대신에 베이스 레지스터가 사용된다는 점 이외에는 모두 같다.
유효 주소 = 명령어의 주소부분 + 베이스 레지스터의 값 - 베이스 레지스터는 베이스 주소를 기억, 명령어의 주소부분은 베이스 레지스터로부터의 상대적인 변위값 - 프로그램이나 데이터가 메모리의 한 세그먼트로부터 다른 세그먼트로 옮겨질 경우 베이스 레지스터의 값만 세그먼트의 시작 주소로 변경하면 가능 하다.
먼저 작업 레지스터 주소 지정 방식을 이용하여 R3를 가리키는 4비트의 피연산자를 이용하여 OR 연산을 위한 첫 번째 데이터의 내용, 즉 R3값을 읽어 온다. 여기서 4비트 중 상위 1비트는 RP0나 RP1을 가리키고, 하위 3비트는 레지스터 포인트에 의해 지정된 8개의 작업 레지스터 블록들 중의 한 레지스터 가리킨다.
역시 작업 레지스터 주소 지정 방식을 이용하여 R6에 저장된 8비트 길이의 레지스터 값을 알아낸다.
R6값이 가리키는 OR 연산의 두 번째 데이터를 읽어온다.
OR 연산을 수행하고 그 결과를 R3 레지스터에 저장한다.
메모리 영역에 접근하기 위한 간접 작업 레지스터 주소 지정방식은 레지스터 파일에 접근하기 위한 간접 작업 레지스터 주소 지정 방식과 거의 유사하다. 다만 데이터가 메모리 영역에 저장되어 있는 경우에는 16비트 길이의 주소 값을 가지므로 이를 저장하기 위해서는 레지스터 쌍이 필요하다는 점이 다를 뿐이다.
따라서 레지스터 포인터가 가리키는 8개의 레지스터로 구성된 하나의 레지스터 블록에서는 외부 메모리 지정을 위하여 4개의 레지스터 쌍을 사용할 수 있게 된다. 예를 들어
LDCR5, @RR6
와 같은 명령어의 피연산자 부분에는 RR6를 가리키는 4비트가 주어지는데, 이 중에서
가장 상위 1비트는 레지스터 포인터를 두 번째와 세 번째의 두 비트는 4개의 레지스터 쌍 중의 하나를 가리키게 된다.
7. 인덱스 주소 지정방식(indexed addressing mode)
인덱스 주소 지정 방식(indexed addressing mode) 은 명령어의 피연산자에 특정 주소 값과 오프셋을 주어서 이들의 합으로 명령 수행에 필요한 데이터의 주소를 결정하는 방식이다. 이는 상위 수준 언어에서 사용하는 배열과 같은 개념이다.
인덱스 주소 지정 방식으로 레지스터 파일을 접근할 때 시작 주소 값은 명령어의 피연산자로, 오프셋은 레지스터를 통하여 주어지며, 이들은 각각 8비트의 길이를 가지며, 이 둘을 합한 결과 역시 8비트의 길이를 갖는다. 프로그램 메모리 영역을 접근할 때는 16비트로 된 시작 주소 값은 레지스터를 통하여, 그리고 8비트 혹은 16비트의 오프셋은 명령어의 피연산자로 주어진다.
인덱스 주소 지정 방식으로 레지스터 파일을 접근할 수 있는 명령은 LD명령뿐이며, 내부 프로그램 메모리나 외부 데이터 메모리에 접근하기 위해서는 각각 LDC와 LDE 명령을 사용해야 한다.
인덱스 주소 지정 방식의 예를 보이기 위하여
LDR0, #10H[R1]
의 명령어가 수행되는 경우를 고려해 보자. 인덱스 주소 지정 방식으로 주어진 #10H[R1]의 피연산자로부터 데이터를 읽어오기 위해서는 먼저 작업 레지스터 주소 지정 방식을 이용하여 R1으로부터 오프셋을 읽어오고, 이에 시작 주소 값인 10H를 더하여 실제 데이터가 저장된 레지스터의 주소를 계산한다.
8비트 오프셋을 이용하여 프로그램 메모리나 데이터 메모리 영역에 접근하기 위한 인덱스 주소 지정 방식의 예는 다음과 같다.
LDC R4, #04H[RR2]
이 명령어에서는 RR2레지스터 쌍에 저장된 16비트 주소값과 04H를 더하여 메모리 영역 내의 실제 데이터가 저장된 주소를 결정한다.
LDCR4, #1000H[RR2]
위의 명령어는 시작 주소나 오프셋 모두 16비트 길이로 주어진 경우이다. 8비트 오프셋이 주어진 경우와 비슷하게 실제 데이터가 주어진 주소를 계산하기 위하여 RR2에 저장된 내용과 1000H가 더해진다.
장점 - Array 구조에 유용하다.
단점 - 시간 소요가 많다.
8. 베이스 레지스터 주소지정 방식(base register addressing mode)
명령어의 오퍼랜드 부분과 베이스 레지스터의 내용이 더해져서 유효 번지가 결정된다. 인덱스 주소 지정 방식에서 인덱스 레지스터 대신에 베이스 레지스터가 사용된다는 점 이외에는 모두 같다.
유효 주소 = 명령어의 주소부분 + 베이스 레지스터의 값 - 베이스 레지스터는 베이스 주소를 기억, 명령어의 주소부분은 베이스 레지스터로부터의 상대적인 변위값 - 프로그램이나 데이터가 메모리의 한 세그먼트로부터 다른 세그먼트로 옮겨질 경우 베이스 레지스터의 값만 세그먼트의 시작 주소로 변경하면 가능 하다.
키워드
즉시 지정방식(immediate addressing mode), 직접 주소 지정 방식(direct addressing mode), 간접 주소 지정 방식(indirect addressing mode), 상대 주소 지정 방식(relative addressing mode), 레지스터 주소 지정 방식(register addressing mode), 간접 레지스터 주소 지정방식(indirect register addr, 인덱스 주소 지정방식(indexed addressing mode), 베이스 레지스터 주소지정 방식(base register addres
추천자료
인터넷 무역 기초
[공과대]-이동통신에 대하여
정보처리개론 요약하기
인터넷 검색엔진
그림퍼즐 맞추기와 기록저장 프로젝트 개발
무선 LAN (Wireless LAN)기술
ATM통신(MPLS)
AutoCAD 학습용 메뉴얼
[인터넷검색엔진][검색엔진][네이버][다음][포털사이트]인터넷검색엔진의 의미, 인터넷검색엔...
[라우팅][알고리즘][프로토콜]라우팅의 원리, 라우팅의 알고리즘 형태, 라우팅 인포메이션 프...
Call Processing
[지구촌사회][지구화]지구화의 의미, 지구화의 성격, 지구촌사회의 NGO(비정부기구)활동, 지...
WCDMA의 주요기술
메모리 맵