336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

◉ 어드레싱 모드(addressing mode)

프로그램이 수행되는 동안 피연산자가 지정되는 방법은 명령어의 어드레싱 모드에 의해 좌우된다.

어드레싱 모드는 실제의 피연산자를 정하기 위해 명령어 속에 있는 주소 필드의 값을 수정하거나 다른 것으로 대체하는 것들을 규정한다.

포인터, 카운터 인덱싱, 프로그램 리로케이션 등의 편의를 사용자에게 제공함으로써 프로그래밍을 하는데

융통성을 주거나 명령어의 주소 필드의 비트를 줄이기 위해 어드레싱 모드 기법이 사용된다.

• 함축 어드레싱 모드(implied addressing mode mode)

• 즉치 어드레싱 모드(immediate addressing mode)

• 레지스터 어드레싱 모드(register addressing mode)

• 레지스터 간접 어드레싱 모드(register indirect addressing)

• 변위 어드레싱 모드(displacement addressing mode)

• 직접 어드레싱 모드(direct addressing mode)

• 간접 어드레싱 모드(indirect addressing mode)

• 상대 어드레싱 모드(relative addressing mode)

• 인덱스 어드레싱 모드(indexed register addressing mode)

• 베이스 레지스터 어드레싱 모드(base register addressing)


함축 어드레싱 모드(implied addressing mode)

명령어 실행에 필요한 오퍼랜드를 지정하지 않아도 묵시적으로 수행하는 방식.

메모리를 참조하지 않고

• 레지스터 단독으로 수행하는 방법.

• 장점 : 명령어 길이가 짧다.

예)

SHL : 누산기의 내용을 좌측으로 시프트하는 명령어

CPL : Acc의 내용을 1의 보수하여 다시 누산기에 로드하는 명령


즉치 어드레싱 모드(immediate addressing mode)

오퍼랜드에 연산에 필요한 숫자 데이터를 직접 넣어주는 방식.

명령어 자신이 데이터를 직접 포함하고 있어 명령어의 실행이 바로 이루어지는 방법.

• 데이터를 구하기 위해 메모리를 액세스할 필요가 없음.

• 상수를 정의하거나 변수값을 초기화하는데 편리하게 사용.

• 사용할 수 있는 수의 크기가 오퍼랜드 필드의 크기로 제한.

 

레지스터 어드레싱 모드(register addressing mode)

• 연산에 사용할 데이터가 레지스터에 저장되어 있으며 레지스터를 참조하는 지정 방식.

• 오퍼랜드 필드의 내용은 레지스터 번호이며 그 번호가 가리키는 내용이 명령어 실행 데이터로 사용.

장점 : 명령어에서 오퍼랜드 필드의 길이가 적어도 되고 데이터 인출을 위한 메모리 접근이 필요 없다.

• 유효주소는 레지스터의 번지가 된다.

 

레지스터 간접 어드레싱 모드(register indirect addressing mode)

오퍼랜드 필드가 레지스터의 번호(레지스터의 내용이 가리키는 메모리가 유효 주소)이다.

지정 레지스터의 내용은 실제 데이터를 인출함.

기억장치 영역은 레지스터의 길이에 달려 있다.

 

변위 어드레싱 모드(displacement addressing mode)

• 두개의 오퍼랜드를 가지며 직접 주소지정방식과 레지스터 간접 주소지정방식을 조합하여 수행.

• 첫 번째 오퍼랜드는 레지스터의 번호, 두 번째 오퍼랜드는 변위를 나타내는 주소.

• 유효 주소= 변위 + 레지스터의 내용

 

직접 어드레싱 모드(direct addressing mode)

오퍼랜드 필드의 내용이 실제 데이터가 들어 있는 메모리 주소를 지정하고 있는 유효주소가 되는 방식.

메모리에 저장되어 있는 데이터를 인출하기 위해 한번만 메모리에 접근하면 되므로 유효주소 결정을

위한 다른 절차나 계산이 필요없다.

• 장점 : 오퍼랜드가 메모리의 번지가 되기 때문에 간단함.

단점 : 오퍼랜드의 비트 수가 제한되어 있기 때문에 직접 접근할 수 있는 기억장치 주소 공간이 제한.

 

간접 어드레싱 모드(indirect addressing mode)

• 오퍼랜드 필드의 값이 해당하는 주기억장치 주소를 찾아 간 후 그 주소의 내용으로 다시 한 번 더

주기억장치의 주소를 지정하는 방식.

직접 주소지정방식에서 주소를 지정할 수 있는 기억장치 용량이 제한되는 단점을 해결하기 위한 방법.

• 장점 : 메모리의 번지지정을 더 크게 할 수 있다.

• 단점 : 명령어 실행 과정에서 두 번씩 메모리를 참조함으로써 시간이 많이 걸린다.

 

상대 어드레싱 모드(relative addressing mode)

• 유효주소 = (현재 명령어의 오퍼랜드 내용) + (프로그램 카운터의 내용)

• 장점 : 전체 메모리 주소가 명령어에 포함되어야 하는 일반적인 분기 명령어보다 적은 수의 비트만

있으면 된다.

 

인덱스 어드레싱 모드(indexed register addressing mode)

• 유효주소 = 인덱스 레지스터의 내용 + 변위

• 인덱스 레지스터는 인덱스 값을 저장하는 특수 레지스터.

• 변위는 기억장치에 저장된 데이터 배열의 시작 주소를 가리킨다.

• 인덱스 레지스터의 내용은 그 배열의 시작주소로부터 각 데이터까지의 거리를 나타낸다.

 

베이스 레지스터 어드레싱 모드(base register addressing mode)

• 유효주소 = 베이스 레지스터의 내용 + 변위

• 프로그램 전체를 재배치에 사용.

[출처] 어드레싱모드|작성자 빅초이

'Programming > 그밖에...' 카테고리의 다른 글

Touch screen Calibration  (0) 2009.09.10
CIE L*a*b*  (0) 2009.06.01
단위환산표  (0) 2008.05.21
PIC Basic으로 구현한 자동응답 디지털 도어락  (0) 2008.05.15
MMU와 MPU의 차이점  (0) 2008.03.31

+ Recent posts