Upload
dustin
View
195
Download
0
Embed Size (px)
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
Citation preview
L o g o
TVM ver. 2.03 최종보고서
www.deu.ac.kr
L o g o
www.deu.ac.krwww.deu.ac.kr
Contents
프로그램 개요1
프로그램 사양2
프로그램 구성요소3
프로젝트 구동4
L o g o
www.deu.ac.krwww.deu.ac.kr
Hot Tip
What is TVM?
TVM 이란 하드웨어를 구성하는
레지스터 , 데이터메모리 , 코드메모리를
기반으로 가상컴퓨터 (Vitual Machine) 의
기계어 (Machine Language)
인터프리터 (Interpreter) 를 말한다 .
L o g o
www.deu.ac.krwww.deu.ac.kr
프로젝트 개요
레지스터
레지스터는
데이터메모리에 있는
자료들을 입출력하고
연산하는 기능을 함 .
Hardware하드웨어
코드메모리코드메모리는 사용자가
정한 명령들이
집합되어있는 장소로
순차적으로 실행되면서
프로그램을 작동시킨
다 .
데이터메모리
데이터메모리는
데이터가 저장되는
장소로 레지스터와
상호교환 한다 .
L o g o
www.deu.ac.krwww.deu.ac.kr
프로그램 사양
메모리메모리메모리메모리코드메모리 100 개까지 사용 가능 함확장하지 않은 이유는 100 개 이상 사용할 일이 없다고 판단되었기 때문
정수정수정수정수 정수의 출력범위를 -32768 부터 +32768 까지사용 가능하게 코딩 했음 .
문자문자문자문자 Getchar() 를 이용하여 문자를 입력받는데 ,대소문자 변형 기능을 내장하고 있음 .
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;
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;
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];
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]);
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];
L o g o
www.deu.ac.krwww.deu.ac.kr
프로그램 구동
N의
약수
를 출
력약
수 출
력
순서
뒤집
기문
자열
순서
변환
숫자
들의
최대
값최
대값
출력
N + …
+ M 합
N부
터 M
까지
합
1 2 3 4
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
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
L o g o
www.deu.ac.krwww.deu.ac.kr
프로그램 구동
입력입력입력입력 5( 갯수 ) 20 40 1000 5 98
출력출력출력출력 1000
최대값 출력
00020406081012141618
0102400910276164601910186040101800492000000
L o g o
www.deu.ac.krwww.deu.ac.kr
프로그램 구동
입력입력입력입력 12
출력출력출력출력 12 6 4 3 2 1
정수를 입력받아정수의 약수 출력
000204060810121416
09
911201126800791092114501711680040000
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
L o g o
www.deu.ac.krwww.deu.ac.kr
프로그램 구동
입력입력입력입력 1 10
출력출력출력출력 55
N 부터 M 까지의 정수의 합
000204060810121416
09
911291100112811435013821800692120000
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
L o g o
Click to edit company slogan .
www.deu.ac.kr