Presentation is loading. Please wait.

Presentation is loading. Please wait.

L o g o TVM ver. Beta 설계 제안서 www.deu.ac.kr. L o g o www.deu.ac.kr Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4.

Similar presentations


Presentation on theme: "L o g o TVM ver. Beta 설계 제안서 www.deu.ac.kr. L o g o www.deu.ac.kr Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4."— Presentation transcript:

1 L o g o TVM ver. Beta 설계 제안서 www.deu.ac.kr

2 L o g o www.deu.ac.kr Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4

3 L o g o www.deu.ac.kr Hot Tip  What is TVM?  TVM 이란 하드웨어를 구성하는 레지스터, 데이터메모리, 코드메모리를 기반으로 가상컴퓨터 (Vitual Machine) 의 기계어 (Machine Language) 인터프리터 (Interpreter) 를 말한다.

4 L o g o www.deu.ac.kr 프로젝트 개요 레지스터 레지스터는 데이터메모리에 있는 자료들을 입출력하고 연산하는 기능을 함. Hardware 하드웨어 코드메모리 코드메모리는 사용자가 정한 명령들이 집합되어있는 장소로 순차적으로 실행되면서 프로그램을 작동시킨다. 데이터메모리 데이터메모리는 데이터가 저장되는 장소로 레지스터와 상호교환 한다.

5 L o g o www.deu.ac.kr 프로젝트 진행일정 프로젝트 완료 최종점검 코드작성 토의 초안

6 L o g o www.deu.ac.kr 프로젝트 진행일정 8주8주8주8주 8주8주8주8주 기본코드를 분석하여 추가할 수 있는 기능 가능성 토의 9주9주9주9주 9주9주9주9주 8 주 토의내용 바탕으로 구현 가능한 기능과 불가능한 기능 분류 더 추가할 내용 토의 10 주 프로그램코드 작성하여 초안 코드에 대한 오류 및 문법 점검 오류와 추가 가능한 기능 토의

7 L o g o www.deu.ac.kr 프로젝트 진행일정 11 주 프로젝트 초안 확인 및 프로그램 업그레이드 가능성 판별 12 주 작성된 코드의 효율성을 판별하고 프로그램 코드 추가 간에 생긴 오류와 문법적 오류에 대한 토의 13 주 최종보고 준비 및 결과물 최종 점검 프로젝트 작품에 대한 소감 및 의견 수렴

8 L o g o www.deu.ac.kr 프로젝트 진행목표 Purpose 긴 문자열을 처리하는 TVM 의 구현 ADD SUB MUL DIV STACK STRING

9 L o g o www.deu.ac.kr 프로젝트 진행목표 오류없이구현 TVM 기본 순서뒤집기 문자열순서변환 문자열변환 대소문자변환 100 개의문자열 무한대문자열 1 단계 2 단계 3 단계 4 단계

10 L o g o www.deu.ac.kr 프로젝트 진행목표 연산 기본 레지스터연산 연산 후 스택에 저장 값을 Reverse 후 저장

11 L o g o www.deu.ac.kr ADD(stack) reg[D] += reg[S]; 위의 연산 값을 Stack 에 저장한다. 3RM - ADD R 의 값이 0~3 일 경우 reg[R] += data[M]; 3RN - ADD R 의 값이 4~7 일 경우 reg[R] += N; ADD(reverse) reg[D]+=reg[S]; 연산 결과가 ‘123’ 이 나오면 ‘321’ 로 저장시킨다. 프로젝트 진행목표 3RM 3RN 32DS39DS

12 L o g o www.deu.ac.kr 프로젝트 진행목표 100 자리까지 구현 가능한 TVM Add Your Text Char 배열 자리올림 3 의 1000 승

13 L o g o www.deu.ac.kr 프로젝트 구성요소 PC 의 정확한 타겟팅 배열의 정확한 연산 올바른 입출력 / 연산

14 L o g o www.deu.ac.kr 프로젝트 구성요소 명령어 Mnemonic 의미 1RMLoad 단, R=0,1,2,3 reg[R] = data[M]; 1RNLoad 단, R=4,5,6,7 reg[R-4] = N; 2RMStoredata[m] = reg[R]; 3RMADD 단, R=0,1,2,3 reg[R] += data[M]; 3RNADD 단, R=4,5,6,7 reg[R] += N; 32DSADD(stack)reg[D] += reg[S]; 의 값을 stack 에 저장 38DSADDreg[D] += reg[S]; 39DSADD(reverse)reg[D] += reg[S]; 를 하여 123 이 나오면 321 로 저장한다. 4RMSUB 단, R=0,1,2,3 reg[R] -= data[M]; 4RNSUB 단, R=4,5,6,7 reg[R] -= N; 42DSSUB(stack)reg[D] -= reg[S]; 의 값을 stack 에 저장 48DSSUBreg[D] -= reg[S]; 49DSSUB(reverse)reg[D] -= reg[S]; 를 하여 123 이 나오면 321 로 저장한다.

15 L o g o www.deu.ac.kr 프로젝트 구성요소 명령어 Mnemonic 의미 60DSDIVreg[D] /= reg[S]; 61DSMODreg[D] %= reg[S]; 62DSDIV(stack)reg[D] /= reg[S]; 의 값을 stack 에 저장 69DSDIV(reverse)reg[D] /= reg[S]; 의 값이 123 이 나오면 321 을 저장한다. 7RMJNZreg[R] 의 값이 0 이 아니면, 명령어의 실행을 code[M] 으로 이동 ; 80MJUMP 명령어의 실행을 code[M] 으로 이동 ; 910RIN 표준입력으로부터 하나의 정수 n 을 읽어서 reg[R] 에 저장 ; reg[R] = n; 920ROUT reg[R] 의 값을 출력하기 930RPUSHreg[R] 의 값을 STACK 에 PUSH( 저장하기 ) 940RPOPSTACK 으로부터 POP( 읽기 ) 하여 reg[R] 에 저장한다. 95NPUSH_PCPC+N 값을 STACK 에 PUSH( 저장하기 ) 96NPJ_PCPC 값을 STACK 에 PUSH( 저장하기 ) 하고 code(N) 으로 점프 970RPJR_PCPC+N 값을 STACK 에 PUSH( 저장하기 ) 하고 code(reg[r]) 로 점프 9800POP_PCPC 값을 STACK 으로부터 POP( 읽기 )

16 L o g o Click to edit company slogan. www.deu.ac.kr


Download ppt "L o g o TVM ver. Beta 설계 제안서 www.deu.ac.kr. L o g o www.deu.ac.kr Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4."

Similar presentations


Ads by Google