Microsoft PowerPoint - 15-MARS

Similar documents
강의10

Microsoft Word - ExecutionStack

JVM 메모리구조

PowerPoint 프레젠테이션

6주차.key

No Slide Title

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

슬라이드 1

Deok9_Exploit Technique

PRO1_09E [읽기 전용]

강의개요

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

C# Programming Guide - Types

MAX+plus II Getting Started - 무작정따라하기

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

MPLAB C18 C

hlogin2

Microsoft PowerPoint - o8.pptx

<31325FB1E8B0E6BCBA2E687770>

untitled

The_IDA_Pro_Book

9

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

DocsPin_Korean.pages

01-OOPConcepts(2).PDF

Week3

hlogin7

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

Microsoft PowerPoint 세션.ppt

Microsoft Word - FunctionCall

02 C h a p t e r Java

Microsoft PowerPoint - CSharp-10-예외처리

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

untitled

untitled

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

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

DE1-SoC Board

Chapter ...

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

vi 사용법

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

Microsoft PowerPoint APUE(Intro).ppt

PowerPoint 프레젠테이션

구문 분석

EndNote X2 초급 분당차병원도서실사서최근영 ( )

SW

1 SW

마이크로시스템제작 lecture1. 강의소개및 MultiSIM 선덕한 마이크로시스템 1

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

Remote UI Guide

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


Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

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

Interstage5 SOAP서비스 설정 가이드

ISP and CodeVisionAVR C Compiler.hwp

쉽게 풀어쓴 C 프로그래밍

Solaris Express Developer Edition

<4D F736F F F696E74202D206D61696E D F6E D20C7C1B7CEBCBCBCAD20B7CEB5F920C8C420B8DEB8F0B8AE20B9D B20B1B8C1B6C0CCC7D8>

초보자를 위한 C# 21일 완성

슬라이드 1

초보자를 위한 C++

Something that can be seen, touched or otherwise sensed

Orcad Capture 9.x

2014밝고고운동요부르기-수정3

2005프로그램표지

Microsoft PowerPoint Python-DB


PowerPoint 프레젠테이션

<C6F7C6AEB6F5B1B3C0E72E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

을 할 때, 결국 여러 가지 단어를 넣어서 모두 찾아야 한다는 것이다. 그 러나 가능한 모든 용어 표현을 상상하기가 쉽지 않고, 또 모두 찾기도 어 렵다. 용어를 표준화하여 한 가지 표현만 쓰도록 하여야 한다고 하지만, 말은 쉬워도 모든 표준화된 용어를 일일이 외우기는

step 1-1

B _02_M_Ko.indd

#KLZ-371(PB)

Chapter 1

UNIST_교원 홈페이지 관리자_Manual_V1.0

Chapter 4. LISTS

슬라이드 1

DDX4038BT DDX4038BTM DDX4038 DDX4038M 2010 Kenwood Corporation All Rights Reserved. LVT A (MN)

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

설계란 무엇인가?

1

슬라이드 1

IDA 5.x Manual hwp

ESP1ºÎ-04

chapter4

Deok9_PE Structure

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

00 SPH-V6900_....

Computer Architecture

Observational Determinism for Concurrent Program Security

1

¿ÀǼҽº°¡À̵å1 -new

Transcription:

MARS 소개및실행 어셈블리프로그램실행예 순천향대학교컴퓨터공학과이상정 1 MARS 소개및실행 순천향대학교컴퓨터공학과 2

MARS 소개 MARS MIPS Assembler and Runtime Simulator MIPS 어셈블리언어를위한소프트웨어시뮬레이터 미주리대학 (Missouri State Univ.) 의 Ken Vollmar 등이자바로개발한교육용시뮬레이터 http://courses.missouristate.edu/kenvollmar/mars edu/kenvollmar/mars 주요특징 GUI 기반통합개발환경 (IDE) 스프레드시트모양의레지스터, 메모리값표시및수정 다양한속도의단일스텝실행 (single-step execution) MARS 실행데이터에연동한디바이스시뮬레이션툴제공 MIPS X-Ray, 명령어통계, MIPS 데이터패스, 캐시, BHT 등 순천향대학교컴퓨터공학과 3 MARS 다운로드및실행 다운로드 http://courses.missouristate.edu/kenvollmar/mars/download.htm 에서다운로드 MARS v4.5 (2015년 8월기준 ) 자바아카이브파일, Mars4_5.jar 실행 윈도우 cmd 창의다운로드된폴더에서다음명령실행 java jar Mars4_5.jar 순천향대학교컴퓨터공학과 4

MARS 통합개발환경 (1) 3 1 2 4 1. Edit display is indicated by highlighted tab. 2, 3. Typical edit and execute operations are available through icons and menus, dimmed-out when unavailable or not applicable. 4. WYSIWYG editor for MIPS assembly language code. 순천향대학교컴퓨터공학과 5 MARS 통합개발환경 (2) 1 9 2 6 8 3 4 5 7 1. Execute display is indicated by highlighted tab. 2. Assembly code is displayed with its address, machine code, assembly code, and the corresponding line from the source code file. (Source code and assembly code will differ when pseudoinstructions have been used.) 3. The values stored in Memory are directly editable (similar to a spreadsheet). 4. The window onto the Memory display is controlled in several ways: previous/next arrows and a menu of common locations (e.g., top of stack). 5. The numeric base used for the display of data values and addresses (memory and registers) is selectable between decimal and hexadecimal. 6. Addresses of labels l and data declarations are available. Typically, these are used only when single-stepping stepping to verify that an address is as expected. 7. The values stored in Registers are directly editable (similar to a spreadsheet). 8. Breakpoints are set by a checkbox for each assembly instruction. These checkboxes are always displayed and available. 9. Selectable speed of execution allows the user to watch the action instead of the assembly program finishing directly. 순천향대학교컴퓨터공학과 6

어셈블리프로그램실행예 순천향대학교컴퓨터공학과 7 예제 1: dest = src1 + src2 # add.asm.data src1:.word 10 src2:.word 20 dest:.word 0 # 데이터섹션.text # 텍스트섹션.globl main main: lw $t0, src1 lw $t1, src2 add $t2, $t0, $t1 sw $t2, dest 순천향대학교컴퓨터공학과 8

어셈블러지시어 어셈블러지시어 (assembler directive) 는기계어로변환되지않고어셈블러에게정보를전달하는지시어 "." 으로시작 주요지시어 섹션 ( 세그먼트 ) 시작 :.text.data 전역심볼선언 :.globl 데이터표시.byte.half.word.ascii.asciiz.float.double 워드경계로정렬 :.align.byte 10.align <- 3바이트삽입, 0, 0, 0. word 123456 순천향대학교컴퓨터공학과 9 프로그램과데이터의메모리할당 텍스트세그먼트 (text segment) 프로그램코드 정적데이터세그먼트 (static data segment) 상수, 정적변수, 배열과문자열 동적데이터세그먼트 (dynamic data segment) 힙 (heap) 이라고도함 동적할당된데이터 Ex) malloc in C, new in Java 스택 (stack) 지역변수 순천향대학교컴퓨터공학과 10

MARS 메모리할당 순천향대학교컴퓨터공학과 11 프로그램작성및실행 MARS 실행 c: > java jar Mars4_5.jar add.asm 프로그램작성및실행 파일생성: File -> New 메뉴또는아이콘 프로그램작성 : Edit 탭, 작성 파일저장 : File -> Save 메뉴또는아이콘 어셈블 : Run -> Assemble 메뉴또는아이콘 Execute 탭 텍스트세그먼트, 데이터세그먼트, 레지스터표시 실행 : Run -> Go 메뉴또는 아이콘 Run -> Step 메뉴또는 아이콘 순천향대학교컴퓨터공학과 12

순천향대학교컴퓨터공학과 13 예제 1: 어셈블 순천향대학교컴퓨터공학과 14

예제 1: 라벨심볼보기설정 순천향대학교컴퓨터공학과 15 예제 1: 실행전 순천향대학교컴퓨터공학과 16

예제 1: 실행중단점 (breakpoint) 설정후실행 (Go) 순천향대학교컴퓨터공학과 17 예제 1: 한명령실행 (Step), add 순천향대학교컴퓨터공학과 18

예제 1: 두명령실행 (Step, Step ), sw 순천향대학교컴퓨터공학과 19 MIPS 시스템호출 순천향대학교컴퓨터공학과 20

시스템호출 (system call) syscall 명령으로운영체제의서비스를호출 시스템호출처리방법 시스템호출코드를 $v0 레지스터에저장 전달할인수를 $a0 $a3 레지스터에저장 시스템호출의결과는 $v0 레지스터에저장 예 화면에 Hello World! 출력 msg:.asciiz "Hello World!" li $v0, 4 # print string 서비스호출 la $a0, msg syscall 순천향대학교컴퓨터공학과 21 MIPS 시스템호출 Help -> MIPS-> Syscalls 메뉴 순천향대학교컴퓨터공학과 22

예제 2: 합의결과출력 (1) # addprint.asm.data # 데이터섹션 src1:.word 10 src2:.word 20 dest:.word 0 msg:.asciiz "sum = ".text # 텍스트섹션.globl main main: lw $t0, src1 lw $t1, src2 add $t2, $t0, $t1 sw $t2, dest li $v0, 4 # print string 서비스호출 la $a0, msg syscall 순천향대학교컴퓨터공학과 23 예제 2: 합의결과출력 (2) li $v0, 1 # print_int 서비스콜 move $a0, $t2 syscall li $v0, 10 # exit 서비스콜 syscall 순천향대학교컴퓨터공학과 24

예제 2: 실행 어셈블 Run -> Assemble 메뉴또는아이콘 Execute 탭 텍스트세그먼트, 데이터세그먼트, 레지스터표시 실행 Run -> Go 메뉴또는아이콘 실행결과 Mars Message 윈도우에출력 프로그램실행자동종료 순천향대학교컴퓨터공학과 25 예제 2: 실행결과 순천향대학교컴퓨터공학과 26