3.8051 주소지정방식 - 이상정

Download Report

Transcript 3.8051 주소지정방식 - 이상정

8051 주소지정방식

순천향대학교 정보기술공학부 이상정

2002-1 마이크로프로세서

주소지정 방식

 주소지정방식(addressing mode) • 명령어 상에 표시된 주소 != 실제 데이터가 저장된 주소 • • CPU 명령이 처리할 데이터가 저장되어 있는 소스 나 처리결과를 저장할 목적지를 지정하는 방식 유효주소(Effective Addess) 계산 방식  8051은 매우 단순한 주소지정 방식 • 장점 : 명령처리 과정을 단순화시켜 처리속도가 빨 라질 수 있다.

• 단점 : 사용자가 프로그램할 때 오퍼랜드의 처리가 다양하지 못하여 불편하다.

순천향대학교 정보기술공학부 이 상 정

2

2002-1 마이크로프로세서

직접 주소지정 방식

 direct addressing mode  데이터가 저장된 메모리의 8 비트 주소를 직접 지정하는 방식  내 부 데 이 터 메 모 리 의 하 위 128 바 이 트 (00H∼7FH)나 SFR을 액세스할 때 사용  명령에서 오퍼런드가 8비트 번지로 표현되므 로 기계어 코드가 짧아지고, 명령의 실행 속도 가 빠르다.

 예 • • MOV A,50H ADD A,52H ; A ←(50H) ; A ← A + (52H) 순천향대학교 정보기술공학부 이 상 정

3

2002-1 마이크로프로세서

(레지스터) 간접 주소지정 방식

 (register) indirect addressing mode  오퍼랜드의 주소를 저장하고 있는 레지스터를 이용하 여 오퍼랜드를 간접적으로 지정하는 방식  간접 주소지정을 나타내는 레지스터의 앞에는 반드시 @기호를 붙인다.

 내부 데이터 메모리나 외부 데이터 메모리를 액세스하 는데 모두 사용  레지스터로서 R0, R1이나 스택 포인터를 사용하면 오 퍼런드를 가리키는 번지가 8비트로 표현  DPTR을 사용하면 오퍼런드를 가리키는 번지가 16비 트로 표현 순천향대학교 정보기술공학부 이 상 정

4

2002-1 마이크로프로세서

(레지스터) 간접 주소지정 방식

 예 • • MOV A,@R0 ; A ← (R0) 내부 데이터 메모리 ADD A,@R1 • ; A ← A + (R1) 내부 데이터 메모리 MOVX A,@R0 ; A ← (R0) 외부 데이터 메모리(8비트 어드레스) • MOVX A,@DPTR ; A ← (DPTR) 외부 데이터 메모리(16비트 어드레스) 순천향대학교 정보기술공학부 이 상 정

5

2002-1 마이크로프로세서

레지스터 주소지정 방식

      register addressing mode R0∼R7을 포함하는 레지스터 뱅크를 액세스하는 방식 이 레지스터들은 명령의 Op 코드내에 있는 특정한 3 비트에 의하여 지정된다.

이 명령에서는 주소를 표시하는 추가적인 바이트를 사 용하지 않으므로 기계어 코드가 짧아진다.

레지스터 뱅크는 4개가 있는데, 이 레지스터 뱅크는 상 태 레지스터 PSW에 의하여 지정된다.

예 • • MOV A,R0 ADD A,R7 ; A ← R0 ; A ← A + R7 순천향대학교 정보기술공학부 이 상 정

6

2002-1 마이크로프로세서

즉치 주소지정 방식

 immediate addressing mode  오퍼랜드가 명령 코드중에 상수값으로 포함되 어 있는 방식  즉치 데이터의 앞에는 반드시 #기호를 사용한 다.

 즉치 데이터는 DPTR을 제외하고는 항상 8비 트이다.

 예 • MOV A,#12 • • ADD A,#34H MOV DPTR,#1234H ; A ← 12 ; A ← A + 34H ; DPTR ← 1234H 순천향대학교 정보기술공학부 이 상 정

7

2002-1 마이크로프로세서

베이스 인덱스 주소지정 방식

 based indexed addresing mode  EA = (base register) + (index register) • base register: DTPR, PC • index register: A  외부 프로그램 메모리에 저장된 탐색표 (lookup table) 참조 시 이용  예 • MOVC A, @A+DPTR ; (A) <- ((A)+(DPTR)) • MOVC A, @A+PC ; (A) <- ((A)+(PC)) 순천향대학교 정보기술공학부 이 상 정

8

2002-1 마이크로프로세서

상대 주소지정 방식

 relative addressing mode  지금부터의 주소지정방식은 분기명령과 밀접 한 관계  EA = PC + 8 bit signed offset • -128 ~ +127 범위 분기  예 • • SJMP 08H ; short jump SJMP 명령의 주소가 100H 이고 SJMP가 2바이트 명령인 경우 분기되는 주소는?

=> 10AH 번지로 분기한다.

순천향대학교 정보기술공학부 이 상 정

9

2002-1 마이크로프로세서

절대 주소지정 방식

 absolute addressing mode  11 비트의 절대주소 지정 • • PC 0-10 <= absolute address PC의 나머지 5비트(11-15)는 변경되지 않음  예 • • AJMP 0111H ; absolute jump AJMP의 주소가 8000H이고 AJMP가 2바이트 명령 일때 분기되는 주소는?

=> 8111H 번지로 분기한다.

순천향대학교 정보기술공학부 이 상 정

10

2002-1 마이크로프로세서

롱 주소지정 방식

 long addressing mode  분기할 번지를 16비트 절대값으로 표현 • PC <= absolute address  예 • • LJMP 9000H ; long jump 9000H 번지로 분기 순천향대학교 정보기술공학부 이 상 정

11