3. 명령어형식 및 주소지정방식 - 이상정

Download Report

Transcript 3. 명령어형식 및 주소지정방식 - 이상정

명령어 형식 및 주소지정방식
순천향대학교 정보기술공학부
이상정
마이크로프로세서
명령어 형식
 1 바이트 명령어 형식
OP 코드
 2바이트 명령어
OP 코드
오퍼랜드
 3 바이트명령어
OP 코드
순천향대학교 정보기술공학부
이상정
오퍼랜드1
2
오퍼랜드2
명령어 형식 및 주소지정방식
마이크로프로세서
주소지정 방식
 주소지정방식(addressing mode)
• 명령어 상에 표시된 주소 != 실제 데이터가 저장된
주소
• CPU 명령이 처리할 데이터가 저장되어 있는 소스
나 처리결과를 저장할 목적지를 지정하는 방식
• 유효주소(Effective Addess) 계산 방식
 8051은 매우 단순한 주소지정 방식
• 장점
명령처리 과정을 단순화시켜 처리속도가 빠름
• 단점
사용자가 프로그램할 때 오퍼랜드의 처리가 다양하
지 못하여 불편
순천향대학교 정보기술공학부
이상정
3
명령어 형식 및 주소지정방식
마이크로프로세서
직접 주소지정 방식
 direct addressing mode
 데이터가 저장된 메모리의 8 비트 주소를 직접
지정하는 방식
 내 부 데 이 터 메 모 리 의 하 위 128 바 이 트
(00H∼7FH)나 SFR을 액세스할 때 사용
 명령에서 오퍼랜드가 8비트 번지로 표현되므
로 기계어 코드가 짧아지고, 명령의 실행 속도
가 빠르다.
순천향대학교 정보기술공학부
이상정
4
명령어 형식 및 주소지정방식
마이크로프로세서
직접주소지정 방식 예
 MOV A,50H
• A ←M[50H]
•
E5
50
 ADD A,52H
• A ← A + M[52H]
•
25
52
순천향대학교 정보기술공학부
이상정
5
(p.143 표 참조)
명령어 형식 및 주소지정방식
마이크로프로세서
(레지스터) 간접 주소지정 방식
 (register) indirect addressing mode
 오퍼랜드의 주소를 저장하고 있는 레지스터를 이용하




여 오퍼랜드를 간접적으로 지정하는 방식
간접 주소지정을 나타내는 레지스터의 앞에는 반드시
@기호를 붙인다.
내부 데이터 메모리나 외부 데이터 메모리를 액세스하
는데 모두 사용
레지스터로서 R0, R1이나 스택 포인터를 사용하면 오
퍼랜드를 가리키는 번지가 8비트로 표현
DPTR을 사용하면 오퍼런드를 가리키는 번지가 16비
트로 표현
순천향대학교 정보기술공학부
이상정
6
명령어 형식 및 주소지정방식
마이크로프로세서
(레지스터) 간접 주소지정 방식 예
xxxxxxx i
 MOV A,@R0
• A ← (R0) : 내부 데이터 메모리
E6
• MOV A,@R1의 기계어 코드는?
27
 ADD A,@R1
• A ← A + (R1) : 내부 데이터 메모리
 MOVX A,@R0
E2
• A ← (R0) : 외부 데이터 메모리(8비트 어드레스)
E0
 MOVX A,@DPTR
• A ← (DPTR) : 외부 데이터 메모리(16비트 어드레스)
순천향대학교 정보기술공학부
이상정
7
명령어 형식 및 주소지정방식
마이크로프로세서
레지스터 주소지정 방식
 register addressing mode
 R0∼R7을 포함하는 레지스터 뱅크를 액세스
하는 방식
 이 레지스터들은 명령의 OP 코드 내에 있는
특정한 3비트에 의하여 지정된다.
 이 명령에서는 주소를 표시하는 추가적인 바이
트를 사용하지 않으므로 기계어 코드가 짧아진
다.
 레지스터 뱅크는 4개가 있는데, 이 레지스터
뱅크는 상태 레지스터 PSW에 의하여 지정된
다.
순천향대학교 정보기술공학부
이상정
8
명령어 형식 및 주소지정방식
마이크로프로세서
레지스터 주소지정 방식 예
 MOV A,R0
• A ← R0
•
xxxxx rrr
E8
• MOV A,R3의 기계어 코드는?
 ADD A,R7
• A ← A 2F
+ R7
• ADD A,R0의 기계어 코드는?
순천향대학교 정보기술공학부
이상정
9
명령어 형식 및 주소지정방식
마이크로프로세서
즉치(이미디어트) 주소지정 방식
 immediate addressing mode
 오퍼랜드가 명령 코드중에 상수값으로 포함되
어 있는 방식
 즉치 데이터의 앞에는 반드시 #기호를 사용한
다.
 즉치 데이터는 DPTR을 제외하고는 항상 8비
트이다.
순천향대학교 정보기술공학부
이상정
10
명령어 형식 및 주소지정방식
마이크로프로세서
즉치(이미디어트) 주소지정 방식 예
 MOV A,#12H
• A ← 12H
 ADD A,#34H
• A ← A + 34H
74
12
24
34
 MOV DPTR,#1234H
• DPTR ← 1234H
순천향대학교 정보기술공학부
이상정
11
90
12
34
명령어 형식 및 주소지정방식
마이크로프로세서
베이스 인덱스 주소지정 방식
 based indexed addresing mode
 EA = (base register) + (index register)
• base register: DTPR, PC
• index register: A
 외부 프로그램 메모리에 저장된 탐색표
(lookup table) 참조 시 이용
순천향대학교 정보기술공학부
이상정
12
명령어 형식 및 주소지정방식
마이크로프로세서
베이스 인덱스 주소지정 방식 예
 MOVC A, @A+DPTR
• A <- M[A+DPTR]
83
 MOVC A, @A+PC
• A <- M[A+PC]
순천향대학교 정보기술공학부
이상정
93
13
명령어 형식 및 주소지정방식
마이크로프로세서
상대 주소지정 방식
 relative addressing mode
 지금부터의 주소지정방식은 분기명령과 밀접
한 관계
 EA = PC + 8 bit signed offset
• -128 ~ +127 범위 분기
순천향대학교 정보기술공학부
이상정
14
명령어 형식 및 주소지정방식
마이크로프로세서
상대 주소지정 방식 예
 SJMP 08H
80
08
• short jump
• SJMP 명령의 주소가 100H인 경우 분기되는 주소는?
TA = 102H(PC) + 8H = 10AH
100H SJMP 08H
102H ………
<- PC
……..
10AH
순천향대학교 정보기술공학부
이상정
15
명령어 형식 및 주소지정방식
마이크로프로세서
절대 주소지정 방식
 absolute addressing mode
 11 비트의 절대주소 지정
• PC0-10 <= absolute address
• PC의 나머지 5비트(11-15)는 변경되지 않음
 AJMP addr
• Absoulute jump
Addr10-8 10101
순천향대학교 정보기술공학부
이상정
Addr7-0
16
명령어 형식 및 주소지정방식
마이크로프로세서
절대 주소지정 방식 예
 AJMP 123H
001 10101
0010 0011
=> 3523H
 AJMP의 주소가 8000H일때 분기되는 주소는?
• PC0-10 <- 123H
• 8123H 번지로 분기
순천향대학교 정보기술공학부
이상정
17
명령어 형식 및 주소지정방식
마이크로프로세서
롱 주소지정 방식
 long addressing mode
 분기할 번지를 16비트 절대값으로 표현
• PC <= absolute address
예
• LJMP 9000H ; long jump
• 9000H 번지로 분기
02
순천향대학교 정보기술공학부
이상정
90
00
18
명령어 형식 및 주소지정방식