Microsoft PowerPoint - hy2-12.pptx

Similar documents
Computer Architecture

슬라이드 1

Computer Architecture

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - hy2-12.pptx

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

hlogin2

Computer Architecture

Microsoft PowerPoint - a6.ppt [호환 모드]

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

Microsoft PowerPoint - DSD06c_ISA.pptx

Microsoft PowerPoint - a2.ppt [호환 모드]

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

<BEEEBCC0BAEDB8AEBEEEC1A4B8AE2E687770>

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

Computer Architecture

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

No Slide Title

정보보안 개론과 실습:네트워크

=

Microsoft Word - FunctionCall

Microsoft PowerPoint - a8a.ppt [호환 모드]

Deok9_Exploit Technique

Microsoft PowerPoint - hw8.ppt [호환 모드]

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

학습 목차 r컴퓨터에서 마이크로 프로세서 유형보기 r어셈블리 프로그램의 이해 r인터럽트(interrupt) r명령어 세트 r주소지정 방식 컴퓨터 구조 CPU 명령어

PowerPoint Presentation

IDA 5.x Manual hwp

Microsoft PowerPoint - o8.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Chapter ...

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

Microsoft PowerPoint 명령어.pptx

PowerPoint Presentation

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

Microsoft PowerPoint - a10.ppt [호환 모드]

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

설계란 무엇인가?

마이크로프로세서 개요

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

<C6F7C6AEB6F5B1B3C0E72E687770>

Microsoft PowerPoint - a4.ppt [호환 모드]

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

Microsoft PowerPoint - a4.ppt [호환 모드]

Microsoft PowerPoint - a9.ppt [호환 모드]

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

Microsoft PowerPoint - 강의2.ppt

8장 조합논리 회로의 응용

슬라이드 제목 없음

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

PowerPoint 프레젠테이션

ºÎ·ÏB

Microsoft Word - ExecutionStack

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - 사본 - OAS04-사무자동화 기술(HW-CPU).ppt

<C0FCC0DAB0E8BBEAB1E220B1B8C1B620377E39B0AD20B1B3BEC82836BFF C0CF20B0ADC0C7292E687770>

구문 분석

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt

Microsoft PowerPoint - ch07 - 포인터 pm0415

3차시.ppt

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

hwp

11장 포인터

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

PowerPoint 프레젠테이션

슬라이드 1

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

untitled

ARM Reverse Engineering

MicrocontrollerAcademy_Lab_ST_040709

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

9

Microsoft PowerPoint - CHAP_03 - 복쇬본.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint Template

ch15

OCW_C언어 기초

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt

슬라이드 1

슬라이드 1

hlogin7

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

PowerPoint 프레젠테이션

Transcription:

2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출 (subroutine call) 명령어실행순서를변경하는연산들 무조건분기, 조건부분기 오퍼랜드의수에따른명령어분류 1-주소명령어 (one-address instruction) : [ 예 ] ADD X ; AC AC + M[X] AC 레지스터가묵시적오퍼랜드로사용됨 2- 주소명령어 (two-address instruction) : [ 예 ] ADD R1, R2 ; R1 R1 + R2 MOV R1, R2 ; R1 R2 ADD R1, X ; R1 R1 + M[X] 한오퍼랜드는 source와 destination으로동시에함 오퍼랜드는레지스터또는메모리이며, 동시에메모리인것을허용하지않는 CPU들도많이있음 3- 주소명령어 (three-address instruction) : [ 예 ] ADD R1, R2, R3 ; R1 R2 + R3 대부분의 3주소명령어의오퍼랜드는레지스터만가능함 37 38 범용레지스터 여러명령어형식 Accumulator 방식의 CPU 모든연산결과는 AC(Accumulator) 에저장함 ( 예 ) 앞에서소개한간단한 CPU, 1 주소명령어 범용레지스터를사용하는 CPU 대개의 CPU 는연산결과를저장할수있는여러개의범용레지스터를제공함 ( 예 ) ARM : R0-R15 80386 : EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP 64-bit x86: EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP, R8-R15 1-주소명령어 2- 주소명령어 3-주소명령어 명령어형식에서레지스터필드에사용하는레지스터를지정함 명령어의길이는 (1) 고정길이형식 (2) 가변길이형식 39 40

명령어형식 연산코드 (Operation Code) : 수행될연산을지정 연산코드필드길이 : 연산의개수를결정 ( 예 )4 비트 2 4 =16 가지의연산정의가능 연산코드필드가 5 비트로늘어나면, 2 5 = 32 가지연산들 정의가능하지만다른필드의길이가감소됨 오퍼랜드 (Operand) 연산을수행하는데필요한데이터또는데이터의위치를지정 데이터는 CPU 레지스터, 주기억장치, 또는 I/O 장치에위치레지스터번호메모리주소 분기 / 호출명령어에서는분기할명령어주소를포함 오퍼랜드필드의길이 : 오퍼랜드의범위를결정 오퍼랜드의종류에따라범위가달라짐 데이터 : 표현가능한수의크기가결정 메모리주소 :CPU 가직접주소를지정할수있는메모리크기를결정 레지스터번호 : 데이터저장에사용될수있는레지스터의수를결정 41 42 명령어형식이프로그래밍에미치는영향 1-주소명령어를사용한프로그램 [ 예 ] X = (A + B) x (C - D) 프로그래밍에다음과같은니모닉을가진명령어들을사용 ADD : 덧셈 SUB : 뺄셈 MUL : 곱셈 DIV : 나눗셈 MOV : 데이터이동 LOAD : 기억장치로부터레지스터로데이터적재 STOR : 레지스터에서기억장치로데이터저장 프로그램 LOAD A ; AC M[A] ADD B ; AC AC + M[B] STOR T ; M[T] AC T A+B LOAD C ; AC M[C] SUB D ; AC AC - M[D] AC C - D MUL T ; AC AC * M[T] AC (A+B)*(C-D) STOR X ; M[X] AC X AC M[A] : 메모리 A번지의내용 T : 메모리내의임시저장장소의주소 ( 레지스터가 AC 한개밖에없으므로임시저장장소를사용 ) 프로그램의길이 = 7 명령어 43 44

2-주소명령어를사용한프로그램 3-주소명령어를사용한프로그램 프로그램 MOV R1, A ; R1 M[A] ADD R1, B ; R1 R1 + M[B] R1 A+B MOV R2, C ; R2 M[C] SUB R2, D ; R2 R2 - M[D] R2 C-D MUL R1, R2 ; R1 R1* R2 MOV X, R1 ; M[X] R1 프로그램의길이 = 6 명령어 프로그램 ADD R1, A, B ; R1 M[A] + M[B] SUB R2, C, D ; R2 M[C] - M[D] MUL X, R1, R2 ; M[X] R1 R2 프로그램의길이 = 3 단점 명령어의길이가증가한다 ( 오퍼랜드가 3 개 ) 명령어해독과정이복잡해진다 RISC(Reduced Instruction Set Computer) 형식의명령어는레지스터오퍼랜드만사용하는 3 주소명령어를제공 45 46 CISC 와 RISC 명령어집합 RISC 의 3-주소명령어프로그램 CISC complex instruction set computer 많은수의명령어들로구성됨 복잡한동작의고수준연산을수행하는명령어들이포함됨 메모리오퍼랜드에대해서산술 / 논리연산수행허용 마이크로코드 (micro-code) 에의한기계어해독 ( 예 ) Intel 80x86 계열, 680x0 계열 RISC reduced instruction set computer 적은수의짧고간단한명령어들로구성됨 하드웨어에의한기계어처리 레지스터오퍼랜드만사용하는 3- 주소연산지원 load 와 store 명령어를사용하여메모리오퍼랜드를액세스 프로그램의길이가길어짐 ( 명령어를더많이사용 ) ( 예 ) Sparc, PowerPC, ARM, Alpha... 프로그램 LOAD R1, A LOAD R2, B ADD R1, R1, R2 ; R1 M[A] + M[B] LOAD R2, C LOAD R3, D SUB R2, R2, R3 ; R2 M[C] - M[D] MUL R1, R1, R2 STORE X, R1 ; M[X] R1*R2 프로그램길이 = 8 명령어 RISC 는프로그램길이가길어지지만각명령어의실행시간이비슷하여명령어파이프라이닝의효율이좋음 47 48

상태레지스터 (status register) 상태레지스터 CPU 연산의실행결과에대한상태 ( 조건플래그 ) 를저장 조건분기명령어에서사용 : 조건플래그에따라서분기여부결정 플래그 부호 (Sign, Negative) 플래그 : 산술연산결과의부호비트를 저장 영 (Zero) 플래그 : 연산결과값이 0 이면 1로설정 올림수 (Carry) 플래그 : 덧셈이나뺄셈에서올림수 (carry) 나빌림수 (borrow) 가발생한경우에 1로설정 오버플로우 (overflow) V 플래그 : 산술연산과정에서오버플로우가발생한경우에 1로설정 약칭 : C, V, N, Z 또는 CF, OF, SF, ZF 49 조건분기명령어 형식 Jcc addr (cc는조건을명시함 ) 이전명령어의실행결과가 cc로지정되는조건을만족하면 addr 번지로분기하며, 그렇지않으면다음명령어를수행함. 플래그값에따른분기 JS addr JNS addr (Sign) JC addr JNC addr (Carry) JZ addr JNZ addr (Zero) JO addr JNO addr (Overflow) 크기비교에따른분기 - 조건플래그들을참조하여결정 JE addr JNE addr JG addr JGE addr JL addr JLE addr ( 부호있는비교 ) JA addr JAE addr JB addr JBE addr ( 부호없는비교 ) 부호있는비교와부호없는비교를구분하여조건분기명령어제공 50 서브루틴호출을위한명령어 서브루틴이포함된프로그램이수행되는순서 CALL 명령어 : 서브루틴을호출함 동작 : 1) 현재의 PC 내용을스택에저장하고 2) 서브루틴의시작주소로분기 RET 명령어 : 원래실행하던루틴으로복귀 동작 : 1) 스택에저장된복귀주소로분기 CALL RET 스택 (stack) Last In First Out 동작을하는자료구조 nested 호출시에복귀주소가사용되는순서가저장되는순서와반대이므로스택의동작과같음 51 52

프로그램수행과정에서스택의변화 SP(Stack Pointer) : 메모리의스택영역의꼭대기주소를가리킴 push push pop push pop pop 스택에 push 또는 pop할때마다 SP 가이동함 주소지정방식 주소지정방식 (addressing mode) 오퍼랜드의위치를지정하는방식 다양한주소지정방식 (addressing mode) 을사용하는이유 : 제한된수의명령어비트들을이용하여여러가지방법으로오퍼랜드를지정하고, 고급언어에서간편하게기계어명령어를 생성할수있도록하기위함 기호 EA : 유효주소 (Effective Address), 데이터가저장된기억장치의실제주소 A : 명령어내의주소필드내용 M(A) : 기억장치 A 번지의내용 R 필드 : 명령어내의레지스터필드내용 R : R 필드가가리키는레지스터의내용 53 54 주소지정방식의종류 직접주소지정방식 직접주소지정방식 (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 오퍼랜드 = M(A) MOV R1, 100 ; R1 M(100) 55 56

간접주소지정방식 유효주소 EA = M(A) 오퍼랜드 = M(EA) = M( M(A) ) MOV R1, (100) ; R1 M(M(100)) 묵시적 / 즉치주소지정방식 묵시적주소지정방식 : 명령어실행에필요한데이터의위치가묵시적으로지정되는방식 1-주소명령어 : 누산기가오퍼랜드로사용됨 PUSH R1 명령어 : 레지스터 R1 의내용을스택에저장 EA = 미리정해진레지스터 / 기억장소 오퍼랜드 = 미리정해진레지스터 / 메모리의내용 간접비트 즉치주소지정방식 : 데이터가명령어에포함되어있는방식 오퍼랜드 = 명령어의데이터필드 MOV R1, #100 ; R1 100 57 58 레지스터주소지정방식 레지스터간접주소지정방식 유효주소 EA = R필드 오퍼랜드 = R 유효주소 EA = R 오퍼랜드 = M(R) MOV R1, (R2) ; R1 M(R2) 주소지정에사용될수있는레지스터들의수 = 2 k 개 (k는오퍼랜드비트수 ) 필드 필드 MOV R1, R2 ; R1 R2 R R 59 60

변위주소지정방식 유효주소 EA = R + A (R: 베이스, A: 변위, 양수 / 음수가능 ) EA = A + R (A: 시작주소, R: 인덱스 ) 사용되는레지스터에따라여러종류의변위주소지정방식정의 상대주소지정방식 : R = PC, EA = PC + A 인덱스주소지정방식 : R = 인덱스레지스터, EA = A + IX 베이스레지스터주소지정방식 : R = 베이스레지스터, EA = BR+A A 는상수, R( 레지스터 ) 는변수 상대주소지정방식 장점 : JMP target target 분기주소가상대주소로표기 MOV R1, Var Var 에대한 A 필드가상대주소로표기 전체주소비트수보다적은수의비트로분기주소를표현가능 프로그램위치가이동해도오퍼랜드의상대주소는불변 단점 : 분기범위가오퍼랜드필드의길이에의하여제한 61 62 인덱스주소지정방식 자동증가, 감소주소지정방식 자동인덱싱 (auto-indexing) 명령어가실행될때마다 ( 인덱스 ) 레지스터의내용이자동적으로증가혹은감소됨 사전증감 : 명령어가실행되기전에증가혹은감소 사후증감 : 명령어가실행된후에증가혹은감소 용도 : 스택연산, 블록데이터이동 MOV R1, Array(R2+) ; R1 M(Array+R2), R2 R2+1 MOV R1, Array(R2) ; R1 M(Array+R2) MOV R1, Array(-R2) ; R2 R2-1, R1 M(Array+R2) 주요용도 : 배열데이터액세스 배열의첨자값을인덱스레지스터에저장하여사용 63 64

베이스 -레지스터주소지정방식 펜티엄프로세서의명령어형식 유효주소 EA = BR + A 베이스레지스터의내용과변위 A 를더하여유효주소를결정 선형주소 (linear address: LA) = 세그먼트의시작주소 + 유효주소 ( 세그먼트의시작주소는세그먼트레지스터에저장 ) 주요용도 : 서로다른세그먼트내프로그램의위치지정 구조체의특정필드액세스 MOV R1, (R2+10) ; R1 M(R2+10) 65 66 Pentium 의가변길이명령어형식 ARM Instruction format 67 68