• 검색 결과가 없습니다.

마이크로프로세서 응용 및 실습 - 01

N/A
N/A
Protected

Academic year: 2022

Share "마이크로프로세서 응용 및 실습 - 01"

Copied!
11
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

마이크로프로세서 응용 및 실습 - 01

x86 마이크로프로세서 개요

(2)

Modes of operation

Protected mode

메모리가 세그먼트로 분리되어 보호 됨

응용프로그램은 자신의 세그먼트에만 접근 됨

모든 운영체제와 응용프로그램이 실행되고 있는 상태

Real-address mode

MS-DOS 응용 프로그램이 실행되고 있는 상태

MS-DOS 응용 프로그램은 모든 물리 주소 공간에 접근 가능

Windows 95/98

Virtual-8086 mode

Windows NT, Windows 2000, Windows XP-32bit

MS-DOS 응용프로그램을 실행시키기 위한 가상의 real-address mode를 제공

System management mode

(3)

Addressable memory

Protected mode

4 GB space

32-bit address

Real-address and virtual-8086 modes

1 MB space

20-bit address

가상 8086 모드에서는 각 응용프로그램이 1MB의 메모리 공간을 갖는 다

(4)

Registers

8개의 범용레지스터, 6개의 세그먼트레지스터, 하나의 명령 어 포인터 (EIP), 플레그 레지스터 (EFLAGS)

CS SS DS

ES

EIP EFLAGS

16-bit Segment Registers EAX

EBX ECX EDX

32-bit General-Purpose Registers

FS GS EBP

ESP ESI EDI

(5)

General purpose registers

EAX, EBX, ECX, EDX 등은 32bit, 16bit, 8bit 접근을 위 한 별도의 명명을 가짐

AH AL

16 bits 8

AX

EAX

8

32 bits 8 bits + 8 bits

(6)

General purpose registers

ESI, EDI, EBP, ESP는 32bit, 16bit 명명만 가짐

(7)

General purpose registers

EAX - 곱셈과 나눗셈에서 accumulator로 자동 사용

ECX - Loop의 카운터로 자동 사용

ESP - stack pointer

ESI와 EDI - index register,

ESI => source, EDI => destination

move 명령어를 위한 주소지정을 인덱스 방식으로 하는 경우

EBP - frame pointer, 스택이 고급언어의 함수 호출에 사용되는 경우, 매 개변수와 지역변수를 참조

(8)

Other registers

Segment register

세그먼트 테이블의 시작주소를 가리킴

CS- code segment

DS- data segment

SS- stack segment

ES, FS, GS - additional segments

EIP

PC 저장

EFLAG

제어플래그 (control flag)

CPU 동작모드를 지정

예) 명령 완료 후 CPU 동작 중지, 오버플로우가 발생하면 인터럽트 발생, 가상8086 모드 <-> 보호모드

상태플래그 (status flag)

연산의 결과를 표현

(9)

Other registers

Status flags

Carry - 부호없는 연산의 오버플로우

Overflow - 부호있는 연산의 오버플로우 또는 언더플로우

Sign - 결과가 음수

Zero- 결과가 0

Auxiliary carry - 4bit에서 carry 발생, BCD 연산에서 사용

Parity - 1의 개수가 짝수

(10)

Other registers

MMX register

Multimedia 성능을 향상시키기 위한 특별한 명령어들이 취급하는 데이터가 저장되어 있는 레지스터

이 특별한 명령어들은 SIMD, 즉, 하나의 명령어로 MMX 레지스터에 있는 복수개의 데이터 를 병렬로 처리 가능

총 8개가 있으며, 각각은 64bit

XMM 레지스터

펜티엄 III 에서 새롭게 추가된 70개의 SSE (Streaming SIMD Extension) 명령어들을 위한 데이터 레지스터

MMX 처럼 멀티미디어 성능을 향상시키는 명령어들

총 8개, 각각은 128 bit

(11)

Other registers

80-bit floating-point data registers

총 8개

FPU에 의해 사용

ST(0) ST(1) ST(2) ST(3)

80-bit Data Registers

FPU Data Pointer

Tag Register Control Register

Status Register ST(4)

ST(5) ST(6) ST(7)

FPU Instruction Pointer

Opcode Register

16-bit Control Registers 48-bit Pointer Registers

참조

관련 문서

 호출 명령어(CALL 명령어)는 현재 PC 내용을 스택에 저장하고 서브 루틴의 시작 주소로 분기하는 명령어다.. 그러나

구조체가

equiptment Mixing bowl, electronic scale, seive, cotton cloth, spatula, rolling

C 언어 포인터 정복하기.. C

measurement)에 따라 가장 낮은 수준인 명목 척도(nominal scale), 순위척도(ordinal scale), 등간척도(interval scale), 그리고 가장 높은 수 준인 비율척도(ratio scale)

목구조 설계 및 실습. chapter

평창제 사용 유무에 따른 분류... 가열

[r]