10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.

Slides:



Advertisements
Similar presentations
ARM core UNIT 03 로봇 SW 교육원 조용수. 학습 목표 PIC, AVR, 8051 ARM 이란 ? ARM 특징 ARM and Thumb ARM Cortex-M0 Interrupt Vector 2.
Advertisements

1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
제4장 명령어 처리.
제 2장 컴퓨터 구조.
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
기본 컴퓨터의 구조와 설계 Lecture #5.
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
Lecture #12 인터럽트 Interrupt.
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제 1 장 마이크로프로세서의 기본동작.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
연습문제풀이/도움말.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제11강 중앙처리장치 2.
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
PLC를 이용한 제어로직에 관한 연구 김 재 은.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
9. 중간언어 9-1. Polish표기법 9-2. N-투플 표기법 9-3. 트리 구조 코드 9-4. 추상 기계 코드
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
Computer Architecture
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
ARM 명령어 집합 Lecture #7.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
4장. 컴퓨터 구조에 대한 두 번째 이야기 작성자: 윤성우.
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
제 1장 시스템 소프트웨어의 개요.
명령어 구조 컴퓨터 하드웨어의 구성 프로그램 명령어 프로그램 실행 동작.
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Chapter 4 The Von Neumann Model.
제1장 시스템 소프트웨어의 개요 컴퓨터시스템 및 하드웨어 구성 컴퓨터의 구성과 기능 시스템프로그램의 개요
Buffer Overflow
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
A Web-Based Little Man Computer Simulator
제 2 장 어셈블러(Assemblers) 2.1 기본 어셈블러 기능 단순 SIC 어셈블러
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture #5 제4장. 제어 유니트.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
임베디드 하드웨어 Lecture #6.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
Presentation transcript:

10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식

Section 01 컴퓨터에서 마이크로 프로세서 유형 보기 마이크로프로세서 중앙처리장치를 한 개의 칩으로 구현한 것 동작 클럭주파수, 데이터버스 비트수에 따른 성능 [그림 10-1] 제조회사에 따른 마이크로 프로세서

Section 02 어셈블리 프로그램의 이해 고급언어 저급언어 기계어 C, COBOL, PASCAL, FORTRAN 어셈블리어 기계어의 비트 형식이 나타내는 의미를 심벌(Symbol)로 표현한 것으로 프로그램을 이해하거나 작성하기가 쉽다. 기계어

컴파일러 : 고급 언어로 작성된 프로그램을 기계어로 변환 컴파일(compile) 컴파일러 : 고급 언어로 작성된 프로그램을 기계어로 변환 [그림 10-2] 고급 언어 프로그램의 컴파일을 통한 기계어 변환

어셈블리 프로그램 고급언어 : Para = 3 기계어 어셈블리어 : MOV Para, 3 11000111 00000110 00000000 00000000 00000011 00000000 어셈블리어 : MOV Para, 3 어셈블리 과정 [그림 10-3] 어셈블리 과정 어셈블리 프로그램 특장점 - 컴퓨터 하드웨어를 직접 접근 - 빠른 수행의 프로그램 - 기억장소를 적게 - 입출력장치를 효율적으로 사용

; X 와 가산기를 더하고 그 결과를 가산기에 저장 8086 어셈블리 언어의 형식 레이블 JUMP, LOOP와 같은 순환이나 반복 명령에서 해당 레이블로 프로그램 카운터 이동 연산 명령의 니모닉 또는 어셈블러 디렉티브 등을 기록 오퍼랜드 또는 피연산자 레지스터 이름, 정수, 라벨, 연산자, 주소 등을 기록 주석문 프로그램의 설명 DOSTART: ADD X ; X 와 가산기를 더하고 그 결과를 가산기에 저장 Label 부 Operation 부 Operand 부 Command 부

어셈블리 프로그램의 실행과정 기억장치 250번지에서 데이터를 가산기에 적재 기억장치 251번지의 데이터와 덧셈을 수행 결과를 다시 가산기에 저장 기억장치 251번지에 그 결과를 저장 프로그램의 주소 170번지로 점프 주소 명령어 기계 코드 100 LOAD 250 1250 101 ADD 251 5251 102 STA 2251 103 JUMP 170 8170 [표 10-1] 어셈블리 프로그램

어셈블리 프로그램의 실행 Load [그림 10-4] LOAD 명령어의 동작

어셈블리 프로그램의 실행 ADD [그림 10-5] ADD 명령어의 동작

어셈블리 프로그램의 실행 STORE [그림 10-6] STORE 명령어의 동작

어셈블리 프로그램의 실행 JUMP [그림 10-7] JUMP 명령어의 동작

프로그램이 실행 중에 프로세서가 현재 처리 순서를 중단시키고 다른 동작을 수행하도록 하는 것 Section 03 인터럽트 프로그램이 실행 중에 프로세서가 현재 처리 순서를 중단시키고 다른 동작을 수행하도록 하는 것 외부로부터 인터럽트 요구가 들어오면 프로세서는 원래의 프로그램 수행을 중단 요구된 인터럽트를 위한 서비스 프로그램을 먼저 수행 인터럽트 서비스 루틴(interrupt service routine : ISR) 인터럽트를 처리하기 위해 수행하는 프로그램 루틴 인터럽트의 예 오버플로우(overflow), ‘0’에 의한 나누기(division by zero) 등이 발생하면 프로그램이 종료 패리티 오류, 키보드 입력, 프린터 출력 등

인터럽트에 의한 제어 이동 [그림 10-8] 인터럽트에 의한 제어 이동

인터럽트 사이클 프로세서가 인터럽트 요구를 검사하는 과정 인터럽트 부 사이클이 포함된 명령어 사이클 [그림 10-10] 인터럽트 부 사이클이 포함된 명령어 사이클의 순서도

두 번째 클럭 : SP(스택 포인터)의 내용이 MAR로 전송 인터럽트 사이클의 마이크로 연산 t0 : MBR ← PC t1 : MAR ← SP, PC ← ISR 시작주소 t2 : M[MAR] ← MBR 첫 번째 클럭 : PC의 내용이 MBR로 전송 PC 내용은 주 프로그램에서 수행될 다음 명령어 주소 두 번째 클럭 : SP(스택 포인터)의 내용이 MAR로 전송 PC의 내용은 인터럽트 서비스 루틴의 시작 주소로 변경 스택 포인터는 MBR에 저장되어 있는 내용을 스택에 저장하기 위해서 저장할 위치를 지정하기 위해서 사용 세 번째 클럭 : MBR에 저장되어 있던 원래 PC의 내용이 스택에 저장

인터럽트 부 사이클에서의 데이터 흐름 [그림 10-11] 인터럽트 부 사이클에서의 데이터 흐름

인터럽트가 발생한 경우의 마이크로 연산 100 LOAD 250 101 ADD 251 102 STA 251 103 JUMP 170 - ISR시작주소 : 650번지 - SP 주소 : 999번지 Interrupt 발생

인터럽트가 발생한 경우의 마이크로 연산 [그림 10-12] 인터럽트 요구에 따른 상태 변화

인터럽트 서비스 루틴 수행 중 다른 인터럽트가 발생 인터럽트 불가능(interrupt Disabled) 다중 인터럽트 인터럽트 서비스 루틴 수행 중 다른 인터럽트가 발생 인터럽트 불가능(interrupt Disabled) CPU가 인터럽트 서비스 루틴을 처리하고 있는 도중에는 새로운 인터럽트 요구가 들어오더라도 CPU가 인터럽트 사이클을 수행하지 않도록 방지 인터럽트는 대기하게 되며, 현재의 인터럽트에 대한 처리가 종료된 후에 발생한 순서대로 처리 우선 인터럽트(Priority Interrupt) 인터럽트의 우선 순위를 결정 우선 순위가 낮은 인터럽트가 처리되고 있는 동안에 우선순위가 더 높은 인터럽트가 들어오면 현재의 인터럽트 서비스 루틴의 수행을 중단하고 새로운 인터럽트를 처리

순차적인 다중 인터럽트 [그림 10-13] 순차적인 다중 인터럽트 처리

우선 순위 다중 인터럽트 [그림 10-14] 우선 순위 다중 인터럽트 처리

우선 순위 다중 인터럽트 다중 인터럽트 처리 시간 흐름 [그림 10-15] 다중 인터럽트 처리 시간 흐름

Section 04 명령어 세트 (instruction set) CPU가 수행할 동작을 정의하는 2진수 코드들의 집합 또는 명령어들의 집합 기계 명령어(machine instruction)라고도 함 일반적으로 어셈블리 코드(assembly code) 형태로 표현 명령어 세트 설계를 위해 결정되어야 할 사항들 CPU가 수행할 연산들의 수와 종류 및 복잡도 데이터 형태, 데이터 길이, 오퍼랜드 수와 길이 오퍼랜드의 주소지정 방법

명령어 세트의 특징 명령어의 구성 연산 코드(Operation Code) 오퍼랜드(Operand) 연산 코드(OP Code)는 수행될 연산을 지정(예: LOAD, ADD 등) 오퍼랜드(Operand)는 연산을 수행하는 데 필요한 데이터 혹은 데이터의 주소: 레지스터, 주기억장치, I/O장치 각 연산은 한 개 혹은 두 개의 입력 오퍼랜드들과 한 개의 결과 오퍼랜드를 포함 명령어는 여러 개의 필드로 구분:OP Code, Operend 1, Operend 2 명령어 분류 데이터 처리 데이터 저장 데이터이동 제어 [그림 10-16] 명령어 형식

오퍼랜드 형태와 수에 따른 명령어 분류 오퍼랜드가 주소를 나타내는 경우 명령어 분류 [그림 10-17] 주소 수에 따른 명령어 분류

1-주소 명령어 오퍼랜드를 한 개만 포함하는 명령어 [예] LOAD X ; AC ← M[X] X 주소 하나만 존재 [그림 10-18] 1-주소 명령어의 형식

2-주소 명령어 2개의 오퍼랜드를 포함하는 명령어 [예] MOV X, Y ; M[X] ← M[Y] [그림 10-19] 2-주소 명령어의 형식

ADD X, Y, Z ; M[X] ← M[Y] + M[Z] 3-주소 명령어 3개의 오퍼랜드를 포함하는 명령어 [예] ADD X, Y, Z ; M[X] ← M[Y] + M[Z] [그림 10-20] 3-주소 명령어의 형식

같은 연산을 1-주소 명령어, 2-주소명령어, 3-주소 명령어를 사용하여 연산할 경우 명령어 형식에 따라 스탭 수가 다름 명령어 형식이 프로그래밍에 미치는 영향 같은 연산을 1-주소 명령어, 2-주소명령어, 3-주소 명령어를 사용하여 연산할 경우 명령어 형식에 따라 스탭 수가 다름 0-주소 명령어 PUSH : Stack에 데이터를 저장 POP : Stack에서 데이터를 인출 명령어 주소 수가 많아지면 복잡해지고 명령어 길이가 길어져 인출속도가 길어짐 프로그램 당 명령어 수가 짧아져 연산속도가 빨라짐

명령어 세트에서 연산의 종류 데이터 전송 산술 연산, 논리 연산, 변환 입출력 명령어, 프로그램 제어 이동 명령어

데이터 전송 레지스터와 레지스터 사이에 데이터를 이동 레지스터와 기억장치 사이에 데이터를 이동 기억장치와 기억장치 사이에 데이터를 이동 데이터 전송 명령어에는 근원지 오퍼랜드(source operand)와 목적지 오퍼랜드 (destination operand)의 위치가 명시 전송될 데이터의 길이와 오퍼랜드의 주소지정 방식(addressing mode)등이 명시

데이터 전송 [예] CPU에서 읽기 동작 주소지정 방식에 근거하여 기억장치 주소를 계산, 실제 주소 획득 원하는 데이터가 캐시에 있는 지 검사 캐시 히트상태에서는 원하는 데이터를 캐시로부터 얻어서 CPU로 이동 캐시 미스상태의 경우, 기억장치 모듈로 읽기 명령을 전송하고 기억장치로부터 데이터가 CPU로 전송

산술 연산, 논리 연산, 변환 산술 연산 논리 연산 변환(Conversion) 기본산술 연산 특징적인 산술 연산 덧셈, 뺄셈, 곱셈, 나눗셈 특징적인 산술 연산 단일-오퍼랜드 연산 절대값(absolute) 연산 음수화(negate)연산 증가(increment) 연산 감소(decrement) 연산 논리 연산 비트들 간에 대한 AND, OR, NOT 및 exclusive-OR 연산 변환(Conversion) 2진수 → 10진수

입출력 명령어, 프로그램 제어 이동 명령어 입출력 명령어 프로그램 제어 이동 명령어 CPU와 외부 장치들간의 데이터 이동을 위한 명령어 분리형 I/O 특정 I/O 명령어 사용 기억장치-사상 I/O 일반적이 데이터 이동 명령어 프로그램 제어 이동 명령어 명령어 실행 순서를 변경하는 명령어 종류 분기 명령어 서브루틴 호출 명령어

오퍼랜드가 다음 실행될 명령어의 주소를 가지고 있음 분기 명령어 오퍼랜드가 다음 실행될 명령어의 주소를 가지고 있음 명령어 내용에 따라서 무조건 오퍼랜드의 주소로 이동하거나 조건 만족 시에만 이동하는 형태 조건 분기에서 연산 결과를 나타내는 조건 코드(condition code) zero(0) 부호(+, -) 오버플로우 플래그 예) BR 202 BRZ 211

다양한 분기 형태 [그림 10-23] 다양한 분기 형태

명령어 형식 : CALL X(Subroutine 이름) 서브루틴 수행 과정에서 스택의 변화 명령어 형식 : CALL X(Subroutine 이름) LORD F ADD C CALL X STOR A . X: MOV R1, D MUL R1,E RET

서브루틴 수행 과정에서 스택의 변화 [그림 10-25] 서브루틴 수행 과정에서 스택의 변화

명령어 형식 명령어 내의 비트 배열 명령어 세트에는 한가지 이상의 명령어 형식이 존재  연산코드의 비트 길이, 오퍼랜드의 수과 길이에 따라 명령어 형식이 달라질 수 있다.

버스 조직(Bus structure)에 의한 명령어 길이 명령어 길이에 따른 명령어 기억장치와 관련된 명령어 길이 기억장치 용량과 기억장치 조직에 의해서 주소를 지정하는 오퍼랜드 부분이 영향 기억장치의 용량이 많은 경우는 주소의 수가 많아지므로 오퍼랜드의 비트수가 많아 져야 한다 버스 조직(Bus structure)에 의한 명령어 길이 데이터를 전송하는 명령어의 경우 이에 맞는 명령어의 길이가 필요 CPU의 복잡도(complexity)와 CPU의 속도에 의한 명령어 길이 명령어는 CPU가 한 번에 읽고 쓸 수 있는 단위로 수행 CPU가 한 번에 읽고 쓸 수 있는 비트 수를 단어(Word) 단어의 크기에 따라서 명령어의 길이 결정

명령어의 종류에 따른 명령어 형식 연산 코드의 종류와 오퍼랜드가 많아지면 프로그램에 유리 주기억 장치의 용량이 증가, 가상 기억장치의 사용량이 증가하면 더 큰 기억장치 영역들을 주소 지정 가능 연산 코드, 오퍼랜드, 주소지정 방식, 주소 범위는 비트들을 필요로 하므로 명령어가 더 길어진다 긴 명령어는 비 효율적으로 사용될 가능성 존재 명령어 종류의 수와 비트 수에 대한 적절한 조정 필요 명령어 내 비트들의 할당에 영향을 주는 요소들 주소지정 방식의 수 명령어 내 오퍼랜드의 수 오퍼랜드 저장에 사용되는 레지스터의 수 레지스터 세트의 수 주소 영역(address range) 주소 세분화(address granularity): 주소 지정 단위(바이트, 워드, 블록)

길이가 서로 다른 더 많은 종류의 연산 코드들을 쉽게 제공 레지스터와 기억장치 참조들을 주소 지정 방식들과 다양하게 결합 가변길이 명령어 명령어 형식에서 서로 다른 길이를 가지는 경우 길이가 서로 다른 더 많은 종류의 연산 코드들을 쉽게 제공 레지스터와 기억장치 참조들을 주소 지정 방식들과 다양하게 결합 주소 지정이 더욱 융통적 CPU의 복잡도가 증가

다양한 주소지정 방식(addressing mode)을 사용 Section 05 주소지정방식 다양한 주소지정 방식(addressing mode)을 사용 제한된 명령어 비트들을 적절하게 이용하여 사용자(혹은 프로그래머)가 여러 가지 방법으로 오퍼랜드를 지정하고 더 큰 용량의 기억장치를 사용할 수 있도록 하기 위함 데이터가 저장된 기억장치의 실제 주소를 유효 주소(Effective Address) : EA 오퍼랜드 필드가 기억장치 주소를 나타내는 경우 : A 오퍼랜드 필드가 레지스터 번호를 나타내는 경우 : R 기억장치 A 번지의 내용 : (A), 레지스터 R의 내용 : (R)

직접 주소지정 방식 (direct addressing mode) 주소지정방식 직접 주소지정 방식 (direct addressing mode) 간접 주소지정 방식 (indirect addressing mode) 묵시적 주소지정 방식 (implied addressing mode) 즉치 주소지정 방식 (immediate addressing mode) 레지스터 주소지정 방식 (register addressing mode) 레지스터 간접 주소지정 방식 (register-indirect addressing mode) 변위 주소지정 방식 (displacement addressing mode) 상대 주소지정 방식(relative addressing mode), 인덱스 주소지정 방식(indexed addressing mode), 베이스-레지스터 주소지정 방식(base-register addressing mode)

직접 주소 지정 방식 오퍼랜드 필드의 내용이 유효 주소가 되는 방식 가장 일반적인 개념의 주소 방식 EA = A 데이터 인출을 위해 한 번만 기억장치에 액세스 연산 코드를 제외하고 남은 비트들이 주소 비트로 사용 지정할 수 있는 기억장소의 수가 제한, 많은 수의 주소를 지정 불가능 [그림 10-26] 직접 주소 지정 방식

오퍼랜드 필드에 기억장치 주소가 저장되어 있는 주소가 저장 그 주소가 가리키는 기억 장소에서 유효 주소 획득 간접 주소 지정 방식 오퍼랜드 필드에 기억장치 주소가 저장되어 있는 주소가 저장 그 주소가 가리키는 기억 장소에서 유효 주소 획득 EA = (A) 실행 사이클 동안 두 번의 기억장치 액세스가 필요하다는 단점 두 번의 액세스 첫 번째 액세스는 주소를 읽기 두 번째는 그 주소가 지정하는 위치로부터 실제 데이터를 인출 주소 지정 방식을 표시하는 간접비트(I)필드가 필요

간접 주소 지정 방식 [그림 10-27] 간접 주소 지정 방식 [그림 10-28] 간접 주소 지정 방식에서의 간접 비트 필드

명령어를 실행하는데 필요한 데이터의 위치가 별도로 지정되어 있지 않음 묵시적 주소 지정 방식 명령어를 실행하는데 필요한 데이터의 위치가 별도로 지정되어 있지 않음 명령어의 연산 코드가 내포하고 있는 방법을 묵시적 주소지정 방식이라고 함 명령어 길이가 짧음 명령어의 종류가 제한 SHL 명령어 AC(누산기)의 내용을 좌측으로 쉬프트(shift)시키는 것

오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터 즉치 주소 지정 방식 데이터가 명령어에 포함되어 있는 방식 오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터 프로그램에서 레지스터들이나 변수의 초기 값을 어떤 상수값(constant value)으로 세트하는 데 유용 데이터를 인출하기 위하여 기억장치를 액세스할 필요가 없다 상수 값의 크기가 오퍼랜드 필드의 비트 수에 의하여 제한 [그림 10-29] 즉치 주소 지정 방식에서 오퍼랜드 필드

레지스터 주소 지정 방식 연산에 사용할 데이터가 레지스터에 저장 오퍼랜드 부분이 레지스터 번호, 유효주소가 레지스터 번호 EA = R 오퍼랜드 필드가 레지스터들의 번호를 나타내기 때문에 비트 수가 적어도 가능 데이터 인출을 위하여 기억장치에 액세스 할 필요 없음 데이터가 저장될 수 있는 공간이 CPU 내부 레지스터들로 제한 [그림 10-30] 레지스터 주소 지정 방식

레지스터 간접 주소 지정 방식 [그림 10-31] 레지스터 간접 주소 지정 방식

변위 주소 지정 방식 직접 주소지정 방식과 레지스터 간접 주소지정 방식을 조합한 방식 오퍼랜드 필드 레지스터 번호필드 직접 주소지정 방식과 레지스터 간접 주소지정 방식을 조합한 방식 오퍼랜드 필드 레지스터 번호필드 변위 값 필드 두 오퍼랜드의 조합으로 유효 주소가 생성 [그림 10-32] 변위 주소 지정 방식

변위주소 지정방식은 사용하는 레지스터에 따라 변위 주소 지정 방식 변위주소 지정방식은 사용하는 레지스터에 따라 상대주소 지정방식 : PC를 사용 인덱스주소 지정방식 : 인덱스 레지스터 사용 베이스 레지스터 주소지정방식 : 베이스 레지스터 사용 간접사이클 명령어 실행에 필요한 데이터를 인출하는 사이클