7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).

Slides:



Advertisements
Similar presentations
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Advertisements

교수님 영상 제 2 장 관세법 일반 제 1 절 통칙 제 2 절 법 해석의 원칙 등 제 3 절 기한과 기간 제 4 절 서류의 송달 등 제 5 절 관세의 부과 및 징수 제 6 절 납세의무의 소멸 등.
Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Understanding of Ubiquitous & Computers Plus
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
제5장 산업재해 보상보험 ☞ 목적 : 근로자의 업무와 관련하여 발생한 재해근로자의 재활 및 사회복귀를 촉진시키기 위하여 이에 필요한 보험시설을 설치 운영하며, 피해를 예방하고 근로자의 복지증진을 위한 사업을 행함으로써 근로자의 보호에 이바지함을 목적으로 함. 산재보험은.
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
제4장 명령어 처리.
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
마이크로프로세서 메모리 및 입출력장치 인터페이스
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
10장 주변장치 (PIO) Slide 1 (of 28).
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
제 1 장 마이크로프로세서의 기본동작.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
연습문제풀이/도움말.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
2-1. PLC I/O 할당 입.출력 기기와 외부기기와의 접속
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
제11강 중앙처리장치 2.
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
Chapter 02 시스템 구조(System Structure)
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
PLC를 이용한 제어로직에 관한 연구 김 재 은.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
Computer Architecture
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
4장. 컴퓨터 구조에 대한 두 번째 이야기 작성자: 윤성우.
제3장 8086 프로세서의 내부구조.
제 2장 컴퓨터동작의 기본 개념.
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
Computer System Architecture
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
3-16. 디지털 시계.
■ 화성공장 산학인턴 버스 노선 확인 안내 문의 전화 : 안내페이지 접속 1
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의 성능, 기능, 조직
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.
임베디드 하드웨어 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:

7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29)

“마이크로프로세서의 명령어 수행 사이클 과 주소지정방식”에 대해 알아보겠습니다. 학습개요 이번 시간에는... “마이크로프로세서의 명령어 수행 사이클 과 주소지정방식”에 대해 알아보겠습니다. 학 습 목 표 이장에서는 CPU 에서 명령어를 수행하는 사이클에 대해 공부하고 주소지정방식에 대해 알아본다. 학 습 목 차 명령어 수행 주소지정방식 Slide 2 (of 29)

명령어 = OP code(명령어 코드) + Operand(실행자) Instruction Cycle Instruction Cycle 명령어 사이클(instruction cycle)은 Memory에 저장되어 있는 program을 읽어와서 명령어를 실행하는 사이클을 말한다. 한 개의 명령어는 명령어 코드(OP_code)와 실행자(Operand) 로 구성된다. 명령어 = OP code(명령어 코드) + Operand(실행자) 제어장치(CU : Control Unit)와 메모리 구조 100 PC MAR Decoder (명령어 해석기) IR CU 제어신호 CPU Memory 100H 101H 102H 103H MBR MAR : Memory Address Register MBR(MDR): Memory Buffer Register(Memory Data Register) IR:Instruction Register(명령어 레지스터) Slide 3 (of 29)

Instruction Cycle Instruction Cycle 따라서 한 개 명령어를 실행하기 위해서 ① 먼저 읽어올 명령어가 저장되어 있는 메모리를 지정한다. ② 메모리에 저장된 명령어를 먼저 제어장치의 명령어 레지스터(IR:instruction Register)로 읽어온다. ③ 읽어온 명령어는 명령어 해석기에서 해석한 다음 해당 명령어에 대한 제어신호들을 생성하여 제어한다. ④ 해석된 명령어에 의해 실행한다 ex) 메모리에 저장되어 있는 실행자(데이터)를 Acc에 읽어오는 명령어를 실행해 보자 어셈블리 언어 : LD A,56H (Acc에 56H을 load 하라는 명령어) 기계어 : 3E, 56 OP_code Operand Slide 4 (of 29)

Instruction Cycle Instruction Cycle 100 PC MAR Decoder (명령어 해석기) IR CU 제어신호 CPU Memory OP_code 100H 101H 102H 103H 3EH 56H Operand MBR Slide 5 (of 29)

Instruction Cycle Instruction Cycle 초기상태 에서 RUN 100H를 실행해 보자 (1) Instruction Fetch cycle 100 PC MAR Decoder (명령어 해석기) IR CU 제어신호 CPU T0 Memory OP_code 100H 101H 102H 103H 3EH 56H T1 3EH T2 MBR(3EH) (1) T0 : PC → MAR ( 100 을 MAR로 전송) (2) T1 : [M] → MBR , PC=PC+1 (100번지 내용을 MBR로 전송) (3) T2 : MBR → IR (3E(op code)를 IR로 load하여 해석) Instruction Fetch cycle Slide 6 (of 29)

Instruction Cycle Instruction Cycle (2) Instruction execution cycle CPU PC T3 MAR Memory Operand 101 101 100H 101H 102H 103H 3EH 56H CU T4 IR 3EH 제어신호 Decoder (명령어 해석기) MBR(56H) T5 Acc 56H (4) T3 : PC → MAR (101번지를 MAR로 전송) (5) T4 : [M] → MBR , PC=PC+1 (101번지 MBR로 전송) (6) T5 : MBR → Acc (MBR(56)을 Acc로 전송) Instruction execution cycle Slide 7 (of 29)

Instruction Cycle Instruction Cycle (3) One Instruction cycle T0 T1 T2 T3 T4 T5 T0 One Instruction cycle [M]→ MBR PC=PC+1 [M]→MBR PC=PC+1 PC→ MAR MBR→ IR PC→ MAR MBR→Acc Instruction Fetch (Machine cycle One) 실행 cycle (Machine cycle) Slide 8 (of 29)

Instruction Cycle Instruction Cycle ex) 9000H번지의 내용을 Acc로 읽어오는 명령어 명령어를 실행해 보자. 9000H번지에는 37H가 저장되어 있다. 어셈블리 언어 : LD A,(9000H) (Acc에 9000H 번지의 내용 37H를 load 하라는 명령어) 기계어 : 2A, 00, 90 OP_code Operand Slide 9 (of 29)

Instruction Cycle Instruction Cycle (1) Instruction Fetch cycle T0 CPU PC MAR Memory OP_code 100 100 100H 101H 102H 103H 9000H 2AH 00H 90H 37H Operand CU IR 2AH 제어신호 Decoder (명령어 해석기) T2 T1 MBR(2AH) Acc (1) T0 : PC → MAR ( 100 을 MAR로 전송) (2) T1 : [M] → MBR , PC=PC+1 (100번지 내용을 MBR로 전송) (3) T2 : MBR → IR (2A(op code)를 IR로 load하여 해석) Instruction Fetch cycle Slide 10 (of 29)

Instruction Cycle Instruction Cycle (2) Instruction execution cycle CPU PC MAR T3 Memory OP_code 100 100 100H 101H 102H 103H 9000H T9 2AH 00H 90H 37H Temp2 Temp1 T6 Operand 90 00 T10 CU 2AH T7 T4 IR T5 제어신호 Decoder (명령어 해석기) T8 MBR(2AH) T11 Acc 37H T12 Slide 11 (of 29)

Instruction Cycle Instruction Cycle (4) T3 : PC → MAR (101번지를 MAR로전송) (5) T4 : [M] → MBR , PC=PC+1 (101번지 MBR로 전송) (6) T5 : MBR → Temp1 (MBR(00H)을 Temp1 레지스터로 전송) (7) T6 : PC → MAR (102번지를 MAR로 전송) (8) T7 : [M] → MBR , PC=PC+1 (102번지 MBR로전송) (9) T8 : MBR → Temp2 (MBR(90H)을 Temp2 레지스터로 전송) (10) T9 : Temp → PC (Temp2, Temp2의 9000H를 PC로 전송한다) (11) T10 : PC → MAR (9000H번지를 MAR로 전송) (12) T11 : [M] → MBR , PC=PC+1 (9000H번지 내용을 MBR로 전송) (13) T12 : MBR → Acc (MBR(37H)을 Acc로 전송) Instruction execution cycle Slide 12 (of 29)

Addressing Mode 주소지정방식(Addressing Mode) 개요 Register와 Memory에서 서로들 간의 Data 전송방법을 주소지정방식(addressing mode)라 한다 Register Memory 주소지정방식의 종류는 다음과 같다. ① Immediate addressing mode (즉치 주소지정 방식) ② Direct addressing mode(직접 주소지정방식) ③ Register addressing(레지스터 주소지정 방식) ④ Indirect addressing mode(간접 주소지정 방식) ⑤ Implied addressing mode(함축 주소지정 방식) ⑥ Relative addressing mode(상대 주소지정 방식) ⑦ Indexed addressing mode(지표 주소지정 방식) ⑧ Modified Page Zero addressing mode(제로 페이지 주소지정 방식) ⑨ Bit addressing (비트 주소지정 방식) Slide 13 (of 29)

Addressing Mode Immediate Addressing Mode 메모리로부터 즉치(숫자)를 Register에 전송하는 주소지정방식을 즉치 주소지정 방식(immediate addressing mode)라 한다 형식 : OP_code + 1 byte operand Mnemonic : LD r, nH ( r 은 A, B, C, D, E, H, L register) ex) LD A, 25H ( A ← 25H : Acc에 즉치 25H를 로드하는 명령어) 3E, 25 OP-code Operand Acc 8000H 8001H 8002H 8003H 3EH 25H 25 Slide 14 (of 29)

⊕ 25H Addressing Mode Immediate Addressing Mode ex) ADD A, 25H ( A ← A + 25 : Acc의 내용에 즉치 25H를 가산한 후 Acc에 로드하는 명령어) C6, 25 OP-code Operand ◈ 실행 전 ◈ 실행 후 Acc Acc 8000H 8001H 8002H 8003H C6H 25H 30 55 25H ⊕ Slide 15 (of 29)

25H Addressing Mode Immediate Addressing Mode 16bit 즉치를 Register에 Load하는 명령어로서 확장 즉치 주소지정 방식(Immediate Extended Addressing Mode) 이라고도 한다 형식 : OP_code + 2 byte operand Mnemonic : LD rr, nnH ( rr 은 BC, DE, HL register) ex) LD HL, 2015H (HL ← 2015H : 즉치 2015H를 HL 레지스터에 로드하는 명령어 21, 15 , 20 OP-code Operand H L 20 15 8000H 8001H 8002H 8003H 21H 15H 20H 25H Slide 16 (of 29)

Addressing Mode Direct Addressing Mode 실행자가 가르키는 메모리번지의 내용을 직접 Register에 전송하는 주소지정방식을 직접 주소지정 방식 (direct addressing mode)라 한다 형식 : OP_code + 2 byte operand Mnemonic : LD r, (nnH) , LD (nnH), r ( r 은 A, B, C, D, E, H, L register) ex) LD A,(9000H) (A ← (9000H) : 9000H 번지의 내용을 직접 A에 Load하는 명령어 3A , 00, 90 OP-code Operand 8000H 8001H 8002H 8003H 3AH 00H 90H Acc 56 직접 전송 9000H 56H Slide 17 (of 29)

Addressing Mode Direct Addressing Mode ex) LD (8500H),A ( (8500H) ← A : Acc의 내용을 8500H 번지에 직접 전송하는 명령어 32 , 00, 85 OP-code Operand 8000H 8001H 8002H 8003H 32H 00H 85H Acc 74 직접 전송 8500H 74H Slide 18 (of 29)

Addressing Mode Direct Addressing Mode 16bit Register에 직접 데이터를 Load하는 명령어로서 확장 직접 주소지정 방식(direct Extended Addressing Mode) 이라고도 한다 형식 : OP_code + 2 byte operand Mnemonic : LD rr, (nnH) , LD (nnH), rr ( rr 은 BC, DE, HL register) ex) LD HL, (8500H) ( H ← (8501H), L ← (8500H) : 8050H, 8051H 번지의 내용을 HL 레지스터로 직접 전송하는 직접 전송하는 명령어 2A , 00, 85 OP-code Operand 8000H 8001H 8002H 8003H 2AH 00H 85H H L 12 34 8500H 8501H 34H 12H 16비트 데이터직접 전송 Slide 19 (of 29)

Addressing Mode Direct Addressing Mode ex) LD (8500H). BC ( (8501H) ← C, (8500H) ← B : BC 레지스터 내용을 8050H, 8051H 번지에 직접 전송하는 직접 전송하는 명령어 ED,43 , 00, 85 OP-code Operand 8000H 8001H 8002H 8003H EDH 43H 00H 85H B C 34 56 8500H 8501H 56H 34H 16비트 데이터직접 전송 Slide 20 (of 29)

Addressing Mode Register Addressing Mode 형식 : OP_code Mnemonic : LD r, r ( r 은 A, B, C, D, E, H, L register) ex) LD A, B ( A ← B : B 레지스터의 내용을 Acc로 전송하는 명령어) 78 OP-code Acc 47 8000H 8001H 8002H 8003H 78H B 직접 Load 47 Slide 21 (of 29)

Addressing Mode Indirect Addressing Mode 16비트 레지스터의 내용이 가르키는 번지의 메모리 내용을 레지스터로 전송하는 주소지정방식을 간접 주소지정 방식(indirect addressing mode)라 한다 형식 : OP_code Mnemonic : LD r, (rr) LD (rr), r ( r 은 A, B, C, D, E, H, L register, (rr)은 SP, BC, DE, HL register) ex) LD A, (HL) (A ← (HL) : HL의 내용이 가르키는 번지의 내용을 Acc 로 전송하는 명령어) 7E OP-code Acc 8000H 8001H 8002H 8003H 7EH 47 H L 90 00 간접 로드 9000H 9001H 47H 34H 16비트 주소 생성 Slide 22 (of 29)

Addressing Mode Implied Addressing Mode 함축 주소지정방식(Implied addressing mode)는 자기 자신의 register를 자체적으로 Data 를 조작하는 주소지정방식 implied addressing mode 이다 형식 : OP_code or 2byte OP_code Mnemonic : CPL, NEG ex) CPL ( Acc 내용을 1진 보수 처리하는 명령어) 2F OP-code ◈ 실행 전 ◈ 실행 후 Acc Acc 8000H 8001H 8002H 8003H 2FH 95 6A CPL 1001 0101 0110 1010 Slide 23 (of 29)

Addressing Mode Implied Addressing Mode ex) NEG (Acc 내용을 2진 보수 처리하는 명령어) ED, 44 OP-code ◈ 실행 전 ◈ 실행 후 Acc Acc 8000H 8001H 8002H 8003H EDH 44H 95 6B NEG 1001 0101 0110 1011 1001 0101 CPL(1진 보수) 0110 1010 + 0000 0001 0110 1011 (2진 보수 결과) Slide 24 (of 29)

Addressing Mode Relative Addressing Mode 상대 주소지정 방식(relative addressing mode)는 현재 PC로부터 근접 Jump( +127~ -128 사이)에 사용되는 상대적 점프를 말한다. 형식 : OP_code + 1byte operand Mnemonic : jr nH (n은 상대점프해갈 8비트 변위를 말한다) 8082H -128(80H) 8100H 8101H 8102H 8103H - 쪽으로 jump할 수 있는 번지 현재 PC 내용 총 256개 번지 +쪽으로 jump할 수 있는 번지 +127(7FH) 8181H Slide 25 (of 29)

Addressing Mode Relative Addressing Mode 변위 계산 방법 8100H 18H Jump해갈 번지 - 현재 PC = 변위 ex) 현재 PC 내용이 8102 일 때 8105번지로 jump하려면 변위 계산 : 8105 - 8102 = 03 JR 03H ( +쪽으로 3번지 jump) 18, 03 OP-code Operand(변위) 8100H 8101H 8102H 8103H 18H 03H JR 03H 현재 PC 내용 +쪽으로 03H 번지로 점프 8105H Slide 26 (of 29)

⊕ Addressing Mode Indexed Addressing Mode 지표 주소지정 방식(Indexed addressing mode)는 지표 레지스터 IX, IY 를 이용하여 번지를 지정하는 방식으로 유효 주소는 다음과 같다. 유효 주소(effective address) = IX(or IY) + d(변위) 변위는 -128에서 +127 사이를 지정한다. Mnemonic : LD r, (IX + d) ex) LD A, (IX + 03H) ( A ←(IX+03H) : IX레지스터 내용에 변위 3H를 가산하여 유효주소를 만들어 유효주소의 내용을 Acc로 전송하는 명렬어) 8000H 8001H 8002H 8003H DDH 7EH 03H DD, 7E, 03 OP-code Operand(변위) Acc 78 IX 8100H 8101H 8102H 8103H 12H 34H 56H 78H 8100 ⊕ 8103(effective address) = 8100(IX) + 03(변위) Slide 27 (of 29)

Addressing Mode Modified Page Zero Addressing Mode Zero page는 0000 번지부터 00FF 번지까지 256번지를 말한다. Zero page내에 특정한 벡터를 구성하여 주소를 지정하는 방식이다. RST nH (nH는 Zero page 벡터 번지이며)명령어에 의해 동작되는 방식. Mnemonic : RST nH (RST 00, RST 08, RST 10, RST18, RST 20, RST 28, RST 30, RST 38) ex) RST 10 (0010H 벡터번지로 가서 명령어를 실행하는 명령어) Memory Zero page D7 ① RST 10 0010H 0011H 0012H 0013H C3H 00H 20H 8000H 8001H 8002H 8003H D7H OP-code ②벡터 구성 JP 2000H (2000H로 점프) 2000H 2001H 2002H 2003H 12H 34H 56H 78H ③특정한 부프로그램 실행 Slide 28 (of 29)

Addressing Mode Bit Addressing Mode Register값에서 임의 bit를 1로 set하거나 0으로 reset하는 mode. Mnemonic : SET I, r (r 레지스터에서 I번째 비트를 “1”로 세트하는 명령어) RESET I, r (r 레지스터에서 I번째 비트를 “0”으로 리세트하는 명령어) ex) SET 3, A ◈ 실행 전 ◈ 실행 후 Acc Acc 80 88 SET 3H, A 1000 0000 1000 1000 ex) RESET 5, B ◈ 실행 전 ◈ 실행 후 Acc Acc B0 88 RSET 5H, A 1011 0000 1001 0000 Slide 29 (of 29)