TVM ver. 2.03 최종보고서

19
L o g o TVM ver. 2.03 최최최최최 www.deu.ac.kr

description

TVM ver. 2.03 최종보고서. www.deu.ac.kr. 1. 2. 3. 4. 프로그램 개요. 프로그램 사양. 프로그램 구성요소. 프로젝트 구동. Contents. Hot Tip. What is TVM? TVM 이란 하드웨어를 구성하는 레지스터 , 데이터메모리 , 코드메모리를 기반으로 가상컴퓨터 (Vitual Machine) 의 기계어 (Machine Language) 인터프리터 (Interpreter) 를 말한다. 프로젝트 개요. Hardware 하드웨어. 레지스터 - PowerPoint PPT Presentation

Transcript of TVM ver. 2.03 최종보고서

Page 1: TVM ver. 2.03  최종보고서

L o g o

TVM ver. 2.03 최종보고서

www.deu.ac.kr

Page 2: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

Contents

프로그램 개요1

프로그램 사양2

프로그램 구성요소3

프로젝트 구동4

Page 3: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

Hot Tip

What is TVM?

TVM 이란 하드웨어를 구성하는

레지스터 , 데이터메모리 , 코드메모리를

기반으로 가상컴퓨터 (Vitual Machine) 의

기계어 (Machine Language)

인터프리터 (Interpreter) 를 말한다 .

Page 4: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 개요

레지스터

레지스터는

데이터메모리에 있는

자료들을 입출력하고

연산하는 기능을 함 .

Hardware하드웨어

코드메모리코드메모리는 사용자가

정한 명령들이

집합되어있는 장소로

순차적으로 실행되면서

프로그램을 작동시킨

다 .

데이터메모리

데이터메모리는

데이터가 저장되는

장소로 레지스터와

상호교환 한다 .

Page 5: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 사양

메모리메모리메모리메모리코드메모리 100 개까지 사용 가능 함확장하지 않은 이유는 100 개 이상 사용할 일이 없다고 판단되었기 때문

정수정수정수정수 정수의 출력범위를 -32768 부터 +32768 까지사용 가능하게 코딩 했음 .

문자문자문자문자 Getchar() 를 이용하여 문자를 입력받는데 ,대소문자 변형 기능을 내장하고 있음 .

Page 6: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

0000 End 프로그램 종료

01DS Load reg[D] = reg[S]

명령어 Mnemonic 의미

1DM Load 단 , R=0,1,2,3 reg[R] = data[M];

1DN Load 단 , R=4,5,6,7 reg[R-4] = N + 32768

명령어 Mnemonic 의미

2SM Store data[M] = reg[S];

2SN Store reg[S-4] = M;

Page 7: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

3R0S ADD reg[D] += reg[S];

3RN ADD 단 , R=4,5,6,7 reg[R-4] += N;

38DS ADD reg[D] += reg[S] (32768을 더하지않음 )

명령어 Mnemonic 의미

4R0S SUB reg[R] -= reg[S];

4RN SUB 단 , R=4,5,6,7 reg[R-4] -= N;

명령어 Mnemonic 의미

5R0S MUL reg[R] *= reg[S];

5RN MUL 단 , R=4,5,6,7 reg[R-4] *= N;

Page 8: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

6R0S DIV reg[R] /= reg[S];

61RS DIV 단 , R=4,5,6,7 reg[R-4] /= N;

68XX MOD reg[0] = reg[2] % reg[1];

명령어 Mnemonic 의미

7RM JUMPreg[R] 의 값이 0 이면 , 명령어의 실행을 code[M] 으로 이동 ;

7RN JUMP단 , R=4,5,6,7 reg[R-4] == 32768 이면 code[M] 으로 이동 ;

78N JUMP if reg[0] != 32768 -> pc = code[pc];

79N JUMP if reg[0] != 0 -> pc = code[pc];

Page 9: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic 의미

80M JUMP 명령어의 실행을 code[M]으로 이동 ;

81N JUMP PC = N if (reg[0]==reg[1]);

82N JUMP PC = N if (reg[0]!=reg[1]);

83N JUMP PC = N if (reg[0]<reg[1]);

84N JUMP PC = N if (reg[0]<=reg[1]);

85N JUMP PC = N if (reg[0]>reg[1]);

86N JUMP PC = N if (reg[0]>=reg[1]);

Page 10: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로젝트 구성요소

명령어 Mnemonic

의미

910R IN표준입력으로부터 하나의 정수 n 을 읽어서 reg[R]에 저장 ;reg[R] = n;

911R IN 표준입력으로부터 하나의 정수를 받음 (32768 더하지않음 )

920R OUT reg[R]의 값을 출력하기

921R OUT reg[R]의 값 출력하기 (32768 빼지 않음 )

930R char IN 문자 하나를 reg[R]에 저장 ; reg[R] = getchar();

940Rchar OUT

reg[R]에 있는 문자를 출력 ; cout << reg[R];

950R PUSH reg[R]의 값을 STACK에 PUSH(저장하기 )

970Rchange IN

문자하나를 대소문자 바꾸어 reg[R] 에 저장 ; reg[R] = getchar();

980Rchange OUT

reg[R] 에 있는 문자를 대소문자 바꾸어 출력 ; cout << reg[R];

Page 11: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

N의

약수

를 출

력약

수 출

순서

뒤집

기문

자열

순서

변환

숫자

들의

최대

값최

대값

출력

N + …

+ M 합

N부

터 M

까지

1 2 3 4

Page 12: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동문자열

거꾸로출력

00020406081012141618202224

0132510930093008114360195008004722496009400460180140000

입력입력입력입력 A B C D E F G

출력출력출력출력 G F E D C B A

Page 13: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 A B C D E F G

출력출력출력출력 g f e d c b a

문자열 거꾸로대소 변환출력

00020406081012141618202224

0132510930093008114360195008004722496009800460180140000

Page 14: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 5( 갯수 ) 20 40 1000 5 98

출력출력출력출력 1000

최대값 출력

00020406081012141618

0102400910276164601910186040101800492000000

Page 15: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 12

출력출력출력출력 12 6 4 3 2 1

정수를 입력받아정수의 약수 출력

000204060810121416

09

911201126800791092114501711680040000

Page 16: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 10 1

출력출력출력출력 10 9 8 7 6 5 4 3 2 1

처음 입력 값부터마지막 값까지

출력 ( 내림차순 )

000204060810

21016

100011019200440178040000

Page 17: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 1 10

출력출력출력출력 55

N 부터 M 까지의 정수의 합

000204060810121416

09

911291100112811435013821800692120000

Page 18: TVM ver. 2.03  최종보고서

L o g o

www.deu.ac.krwww.deu.ac.kr

프로그램 구동

입력입력입력입력 i am a boy, I am A boy

출력출력출력출력 I AM A BOY, i AM a BOY

문자대 / 소문자로

바꾸기

00020406081012

07

2510930093008112980080040000

Page 19: TVM ver. 2.03  최종보고서

L o g o

Click to edit company slogan .

www.deu.ac.kr