Assembly 05 방호남 07 반지훈 09 박상욱.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

L o g o TVM ver. Beta 설계 제안서 L o g o Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4.
컴퓨터와 인터넷.
3. 명령어 집합 구조 순천향대학교 정보기술공학부 이상정.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
2.1 CPU의 기본 구조 2.2 명령어 실행 2.3 명령어 파이프라이닝 2.4 명령어 세트
제4장 어셈블리어.
어셈블리.
인터럽트 Interrupt 시스템 프로그래밍 - Lecture #8 신라대학교 컴퓨터공학과 시스템프로그래밍.
제 9 장 구조체와 공용체.
Lecture #5 어셈블리어 (2) 매크로 어셈블리어 시스템프로그래밍.
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
제 7 장 링커와 로더 설계.
Lecture #3 인텔 프로세서의 내부구조 및 동작 방식 시스템프로그래밍.
TMS320F2812의 GPIO의 이해.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
Cpu 구조 및 기능 Cpu의 동작 명령어 집합 명령어 형식 주소 지정 방식
어셈블리 문법 보강 4월 10일.
System Programming 제1장 배경지식 시스템 프로그래밍.
시스템 보안 [Buffer Overflow] DEC, 15, 2013 By 박동혁.
REVERSE ENGINEERING HeXA 1st
Lecture #8 어셈블리어 (5) 매크로 어셈블리어 시스템프로그래밍.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
AT MEGA 128 기초와 응용 I 기본적인 구조.
제10강 중앙처리장치 1.
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
제2장 CPU의 구조와 기능. 제2장 CPU의 구조와 기능 CPU의 기능 명령어 인출(Instruction Fetch): 기억장치로부터 명령어를 읽어온다. 명령어 해독(Instruction Decode): 수행해야 할 동작을 결정하기 위하여 인출된 명령어를 해독한다.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
LCD 모듈의 특징 LCD 컨트롤러 내장으로 모든 디스플레이 기능을 명령어로 제어 8비트 혹은 4비트로 인터페이스
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
제3장 8086 프로세서의 내부구조.
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
11장. 1차원 배열.
명품 C++ 프로그래밍 1장. C++ 시작.
Buffer Overflow
JA A V W. 03.
Chap 6.Assembler 유건우.
인터넷응용프로그래밍 JavaScript(Intro).
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
컴퓨터시스템 구조 Computer System Architecture.
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
10장 부프로그램 구현 순천향대학교 컴퓨터공학과 하 상 호.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2. 컴퓨터 시스템의 동작 명령어 구성 연산 종류와 기능에 따라 오퍼랜드 부분을 다양하게 활용 가능.
제4강 처리장치 1.
ARM Development Suite v1.2
Canary value 스택 가드(Stack Guard).
소리 편집 안 재 형.
Lecture #3 제2장 CPU의 구조와 기능(2).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
AT MEGA 128 기초와 응용 I 기본적인 구조.
7주차: Functions and Arrays
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
Chapter 11 구조체.
제 4 장 Record.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
2. 프로세스 B 안우진 - 운영체제 -.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Assembly 05 방호남 07 반지훈 09 박상욱

목 차 정의 / 특징 Assemble & Linking 메모리 세그먼트 / 오프셋 레지스터 구성요소 기본 명령어 Hello World!

정의 / 특징 기계어와 1:1로 대응되는 명령을 기술하는 언어 메모리 상의 데이터에 접근/조작 하드웨어에 직접 액세스하여 제어 가능 크기가 작고 빠르다

Assemble & Linking

메모리 기본 단위는 1바이트 각 바이트마다 유일한 주소값 메모리에 저장되어지는 데이터는 모두 숫자 -> 문자는 ASCII 혹은 Unicode

Segment / Offset 1MByte 이상의 메모리를 사용하기 위한 개념 Segment 주소 :물리메모리에서 차지하고 있는 영역 Offset :Segment의 시작점으로부터 떨어져있는 거리

레지스터 CPU에서 명령을 처리하기 위해 혹은 처리하고난 데이터를 보관하는 장소 크키가 작다

범용 레지스터 각 16 비트로 AX, BX, CX, DX가 존재 AH(High) + AL(Low) = AX 80386 이후 각 32 비트로 EAX ~ EDX가 존재 EAH, EAL은 없다. AX: 주로 산술 계산과 입출력을 위해 사용 BX: 주소 지정시 포인터로 사용 CX: 루프의 카운트를 위해 사용 DX: 다양한 데이터, 문자출력에 사용

세그먼트 레지스터 프로그램의 각 부분에서 사용되는 데이터를 표시 (E)CS: 프로그램의 실제 코드가 있는 메모리 시작 주소 (E)DS: 데이터를 저장된 메모리 시작주소 (E)SS: 함수가 호출될 경우 돌아가기 위한 반환점 주소 (E)ES: 여분. 비디오나 문자열을 다룰 때 사용

인덱스 & 스텍 레지스터 (E)DI: 메모리 등의 이동시에 목적지 주소를 저장 (E)SI: 메모리 등의 이동시에 원본 주소를 저장 (E)SP: 스텍의 가장 윗 부분을 가리킨다 (E)BP: 스텍의 가장 아랫 부분을 가리킨다

기타 레지스터 (E)IP: 다음에 실행될 명령의 주소를 가짐 Flag: 프로그램의 상태를 나타내기 위해 사용

구성요소 예약어 식별자(변수) 디렉티브 명령어 Label Mnemonic Operand ;Comment

기본 명령어 MOV: 데이터 이동 (대입) MOV AX, 4C00H PUSH: 오퍼랜드의 내용을 스택에 쌓는다 PUSH AX POP: 스택으로부터 값을 뽑아 낸다. POP BX ADD: 오퍼랜드의 두 값을 더한다. ADD AX, BX SUB: 왼쪽에서 오른쪽의 값을 뺀다. SUB AX, 5H

기본 명령어 RET: CALL 명령 실행 후 복귀 RET (#) LEA: 메모리의 Offset값을 레지스터로 로드 LEA EAX, msg INT: 도스 인터럽트 호출 MOV AH, 09H INT 21H JMP: 점프, 프로그램의 흐름을 바꿈 (cf. GOTO) JMP <???> CALL: 프로시져 호출 CALL <proc name> RET: CALL 명령 실행 후 복귀 RET (#)

Hello world

질 문