3.2 분기 명령어.

Slides:



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

천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
L o g o TVM ver. Beta 설계 제안서 L o g o Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4.
음란물에 대하여. 인터넷 음란물의 의미 돈벌이를 위해 단지 성적 욕망을 불러 일으키기 위한 음란한 인터넷 상의 사 진, 동영상, 만화 등을 말한다.
아이핑 소개 (탁구대회) 아이핑 담당 신동일 네이버(다음)에서 아이핑검색 아이핑 소개 (탁구대회) 담당 신동일 아이핑.
누가 누가 인기 많나? 막무가내 설문조사.
안드로이드 악성코드 분석론 및 리버싱 27th OCTOBER 2013.
3. 명령어 집합 구조 순천향대학교 정보기술공학부 이상정.
마이크로프로그램된 제어 (Microprogrammed Control)
1. PC 에서 회원가입 1. 회원가입 버튼 클릭 클릭.
2014학년도 중학교 교육과정 편성시 유의사항 울산광역시교육청 교육과정운영과 한 상 철.
Lecture #2 제2장 CPU의 구조와 기능(1).
2.1 CPU의 기본 구조 2.2 명령어 실행 2.3 명령어 파이프라이닝 2.4 명령어 세트
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제4장 어셈블리어.
어셈블리.
Lecture #5 어셈블리어 (2) 매크로 어셈블리어 시스템프로그래밍.
컴퓨터 프로그래밍 기초 [Final] 기말고사
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
어셈블리 문법 보강 4월 10일.
컴퓨터시스템 구조 Computer System Architecture.
제 3장 컴퓨터 시스템의 구조.
System Programming 제1장 배경지식 시스템 프로그래밍.
REVERSE ENGINEERING HeXA 1st
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
9장. 제어장치 Lecture #9.
제10강 중앙처리장치 1.
제 5장 매크로 프로세서 설계.
제 11 장  코드 최적화.
ARM 명령어 집합 Lecture #7.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
제 6장 8086 어셈블러 설계.
DK-128 ADC 실습 아이티즌 기술연구소
제1장 컴파일러 개요.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
14 마이크로 연산과 제어장치 IT CookBook, 컴퓨터 구조와 원리 2.0.
초등학생이 pc방을 가도 되는가? 등마 초등학교 5학년 4반 김근아.
JA A V W. 03.
Chap 6.Assembler 유건우.
어셈블리어 (2) 매크로 어셈블리어 시스템 프로그래밍 - Lecture #4
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
ARM Development Suite v1.2
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Lecture #9 매크로 프로세서 설계 & 구현.
10장 부프로그램 구현 순천향대학교 컴퓨터공학과 하 상 호.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
암 걸리는 arm리버싱 이태양 제 13회 해킹캠프 첫 인사 자기소개 0.5분 Arm 소개 5분 레지스터 및 명령어 25분
ARM Development Suite v1.2
ATmega128의 특징 아이티즌 기술연구소
Fucntion 요약.
C 코드최적화 세명대학교 AI연구실 양승조.
DK-128 개발환경 설정 아이티즌 기술연구소
Lecture #3 제2장 CPU의 구조와 기능(2).
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
ARM Development Suite v1.2
TVM ver 최종보고서
ARM Development Suite v1.2
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
제 10 장  코드 생성.
Assembly 05 방호남 07 반지훈 09 박상욱.
ARM Development Suite v1.2
LEON3 DBT 엔진을 이용한 ERC32 기반의 하이퍼바이저 프로토 타입 개발
4-1. 명령어 형식.
Presentation transcript:

3.2 분기 명령어

분기 명령어 분기 명령어 명령어 유형 실행의 흐름을 변경하거나 어떤 루틴을 호출하는데 사용 if-else 문 loop (for, while, …) 함수 호출 명령어 유형 B{<조건>} label BL{<조건>} label BX{<조건>} Rm BLX{<조건>| label | Rm

PC (Program Counter) 다음 수행할 명령어의 주소를 간직하는 특수 목적의 레지스터 한 명령어를 수행하면 자동적으로 다음 주소로 증가 분기 명령어의 수행 : PC 값을 원하는 위치의 주소로 저장 ARM에서는 R15가 PC로 사용 0x1010 0x1014 ADD R0, R1, R2 0x1018 MOV R3, #4 0x101C MOV R4, #5 0x1020 SUB R5, R4, R3 0x1024 0x1028 0x102C PC : 메모리

직접 점프 (B) 명령어 표기법 동작 B{cond} label 24비트 offset을 32비트로 부호 확장한다. (1)의 결과를 왼쪽을 2비트 shift한다. PC  PC + (2)의 결과 + 8  32MB 범위 내에서 점프 가능 프로그래머가 label로 표시한 곳으로 점프하며, (1),(2),(3)의 계산은 어셈블러가 한다.

직접 분기(B) 명령어 예제 B forward backward: ADD r1, r2, #4 ADD r1, r2, #4 SUB r1, r2, #4 backward: ADD r1, r2, #4 SUB r1, r2, #4 ADD r4, r6, r7 B backward HERE: B HERE

CMP R0, #0 BEQ LABEL1 CMP R0, #1 BEQ LABEL2 ... LABEL1: LABEL2: MOV R0, #1 CMP R0, #0 CMPNE R0, #1 BEQ LABEL ... LABEL: MOV R0, #1

프로그램 예제 1부터 10까지 더하기 MOV R0, #0 MOV R1, #1 LOOP: ADD R0, R0, R1 CMP R1, #10 BLE LOOP /* here R0 : 결과값 */

링크 (BL) 명령어 표기법 동작 BL{cond} label label : 24 비트 offset으로 2의 보수로 표현 동작 R14(LR: Link Register)  PC (BL 다음 명령어 주소) B 명령어와 같이 점프 서브루틴(subroutine) 콜 명령어라고 한다. 돌아올 곳의 주소를 LR(R15)에 저장하고 점프한다.

서브루틴 콜 형식 ... BL SUB ADD R0, R1, R2 ... SUB: /* 함수 SUB 구현 */ MOV PC, R14 /* 함수 return */

분기 명령어의 기계어 형식 B offset BL offset BX Rm BLX offset BLX Rm <cond> 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 cond offset Rm H B offset BL offset BX Rm BLX offset BLX Rm <cond> - H : 24비트 오프셋의 비트 1 - Rm : R0 ~ R15 EQ 1 NE CS CC MI PL VS VC 1 HI LS GE LT GT LE AL NV