[컴퓨터 프로그래밍] 어셈블리(mips) 사칙연산 계산기

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.12.30 / 2019.12.24
  • 9페이지 / fileicon hwp (아래아한글2002)
  • est1est2est3est4est5 4(구매금액의 3%지급)
  • 2,000원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
최대 20페이지까지 미리보기 서비스를 제공합니다.
자료평가하면 구매금액의 3%지급!
이전큰이미지 다음큰이미지
하고 싶은 말
제가 여러가지 식과 경우를 입력해 보면서 테스트한 결과 정상적으로 잘 작동되었습니다. 모든 예외처리가 되지는 않지만 어느정도 예외처리도 되고 PCSpim으로 동작 시킬 경우 소숫점 4~5자릿수 이하의 결과는 어느정도 오차가 있지만 그것은 PCSpim 상의 문제이므로 소스코드는 계산식 입력에 따른 결과가 거의 완벽하게 나온다고 할 수 있습니다.

그리고 많은 분들이 F5로 일괄 진행하면 잘못된 값이 나온다고 머라하던데 제가 검사 맡을때는 F5로 일괄진행해서 값이 안나오는것에 대해 문제 삼지 않았고, 이 프로젝트를 한 다른 사람중에 이정도 기능을 갖추어 코딩한 사람들은 다 일괄 실행했을때 값이 이상하게 나와서 조교도 인정했습니다. 그러니까 F10으로 실행시켜야 될겁니다. 참고로 제가 이 과제 점수, 백점 만점에 보너스 점수까지 110점 받았습니다.
본문내용
■ 입력형식

입력형식은 콘솔 창에 직접 계산식을 입력하는 방법인데 실수나 정수, 사칙연산, 괄호 이외의 입력을 넣으면 안된다. 그리고 입력식의 문자열 길이가 100자를 초과해도 안된다. 잘못된 입력에 대해서는 어느 정도 예외 처리가 가능하다. 그리고 PCSpim 프로그램을 사용하여
구동시 반드시 F10으로 한줄씩 프로그램을 진행해야 된다. F5로 일괄
진행시 잘못된 값으로 나오는데 이것은 PCSpim의 문제로 보인다.

예) 바른 입력식
11.05+2.5*(5-119.005/3)
예) 잘못된 입력식
5.2+ a33*(15+1.5/4.25)=

■ 결과출력
계산식을 입력하면 결과가 출력되는데 계산 값과 계산식을 후위식으
로 바꾼 것이 콘솔 창에 출력된고 후위식으로 바꾼것도 역시 콘솔 창에 출력된다. 음수 계산 처리도 하려고 했지만 음수 계산은 오류가 있는것으로 보인다.
예) 25+-30 의 경우 -30을 음수 30으로 인식하여서 답이 -5가 나와
야 하는데 이 부분의 구현에 오류가 있다.
이 경우를 제외하고 일반적인 식의 경우 다 정확한 값이 나오며
소숫점 이하 4~5자리수 이상 내려가면 미세한 오차를 보이게 되는데 이것은 PCSpim의 문제인 것 같다.

■ 계산기 소스 코드

.text
.globl __start
__start:
la $a0,express
li $v0,4
syscall #"연산식 : " 을 출력

li $v0,8
la $a0,exp
li $a1,100
syscall
move $t1,$a0 #Expression 문자열을 입력 받아서 그 주소를 t1에 저장

la $t3,bexp #후위식을 저장할 공간의 주소를 t3에 저장
move $t8,$t3 #t3의 첫번째 주소값을 t8에 저장
sub $t1,1

load:
add $t1,1 #t1이 다음 주소값을 가리킴
lb $t0,($t1) #t1의 주소가 가리키는 값을 t0에 넣음
beq $t0,'+',pre3 #'+'나 '-'면 세번째 우선순위
beq $t0,'-',mark #'-'가 부호인지 연산자인지 결정
beq $t0,'*',pre2 #'*'나 '/'면 두번째 우선순위
beq $t0,'/',pre2
beq $t0,'(',pushstack #'('면 최상위 우선순위이므로 바로 스택에 푸시
beq $t0,')',endparren #')'면 '('가 나올때 까지 스택에 있는 모든 연산자를 팝함
beq $t0,10,popstack #문자열의 끝인지 확인
beq $t0,'.',noerror #에러체크
blt $t0,'0',error
bgt $t0,'9',error
자료평가
  • 자료평가0자료평가0자료평가0자료평가0자료평가0
  • 잘정리되어있는자료이네요
  • tmdal***
    (2016.05.06 15:38:37)
  • 자료평가1자료평가1자료평가1자료평가1자료평가1
  • 아 개싀뱔 낚였네 돈물어내라 ㅅㅂㄻ 뭐가 되는데
  • ja***
    (2008.06.10 21:07:48)
  • 자료평가2자료평가2자료평가2자료평가2자료평가2
  • 이건 뭐....
  • cjswowhd***
    (2008.05.27 23:49:03)
  • 자료평가3자료평가3자료평가3자료평가3자료평가3
  • 막말로 환불 받고 싶네요 ㅡㅡ;; F5번을 눌르고 실행 시켰을경우 합계에서 에러가 납니다.
    실행시킨데로 했는데도 그렇습니다. 그러나 F10번을 눌르고 노가다 뛰면 정상작동합니다.
    이건 좀 잘 못 된것 아닙니까?? 에러나는 부분도 못 찾겠습니다.
    됐다 안됐다 하는데....당황스럽네요.
  • pktae***
    (2008.05.14 09:11:46)
회원 추천자료
  • [전산] 컴퓨터 발달의 역사
  • 컴퓨터의 역사에는 주판에서 디지털 컴퓨터라는 흐름과 계산척에서 아날로그 컴퓨터라는 두 흐름이 있다. 기계라고 하면 곧 톱니바퀴를 상상하게 되지만, 톱니바퀴를 사용한 계산기를 처음 만든 사람은 파스칼이다. 파스칼은 세무관리인 아버지를 도와주기 위해 이것을 만들었는데 더하기만 할 수 있던 것을 라이프니쯔에 의해 개량되어 사칙연산기가 1694년에 완성되었다.컴퓨터와 계산기의 차이는 계산할 때마다 일일이 키를 두드리느냐 아니냐하는

  • [컴공]Risc란 무엇인가
  • 컴퓨터 아키텍처(Architecture)의 진정한 효시였다. 시스템 360은 컴퓨터 아키텍처와 하드웨어(Hardware) 실행의 구분에서 시작하였다. 시스템 360 이전에는 CPU와 메모리(Memory)가 비슷한 방법으로 만들어져 속도가 거의 같았으며, 단지 단일 구현(Single Implementation)에 의한 성능 대비 가격(Cost/Performance)효과가 아키텍처의 선택 가늠이었다.시스템 360시기에는 마이크로프로그래밍(Microprogramming)이 가장 주된 기술의 혁신이었다. 마이크로프로그래밍은 작은 컨트롤

  • [컴공]컴퓨터의 성능별 크기별 분류 및 특징
  • 컴퓨터를 말한다.인류가 수를 계산하기 시작한 때부터 계산용 도구를 사용하였으나 본격적인 기계화는 중세기 이후로 곱셈나눗셈을 가능케 한 내피어(Napier)의 계산막대(1617년), 파스칼(Pascal)에 의한 톱니바퀴식 덧셈기(1642년),이 덧셈기를 개량한 라이브니츠(Leibnitz)의 사칙계산기 등이 있었으며, 일련의 계산을 자동적으로 실행하는 자동계산기가 1833년에 영국의 수학자 바비지(C.Babbage)에 의해 기억연산제어입출력 등의 기능을 가진 해석엔진(Anal

  • [전산] 전산학개론-컴퓨터개요
  • 프로그래밍할 수 있게 약속한 언어단점:-기계어는 컴퓨터에 대한 전문적인 지식없이는 배워서 활용하기가 극히 어렵다-기종마다 그 언어가 다르기 때문에 기종 상호간의 호환성이 없다.따라서 기종이 바뀌 면 다시 그 기종의 기계어를 배워서 기존의 프로그램도 다시 작성해야 한다-프로그램이 0과 1이란 2진 숫자의 나열로만 되어 있기 때문에 그것을 읽어 이해하거 나 수정하기가 곤란하다(2) 어셈블리 언어(기호 언어)명령이나 자료가 2진수의 나

  • 전자정보통신 약어정리
  • 컴퓨터 통신UR User ReservedURI Universal Resource IdentifierURL Uniform Resource LocatorURL Universal Resource LocaterURP User Root Pointer registerURSI International Union of Radio Science, 국제 전파 과학 연합URSI Union Radio-Scientifique internationale, 국제 전파 과학 연합US Unit Separator, 단위 분리 문자, 유닛 분리 문자USART Universal Synchronous Asynchronous Receiver Transmitter, 범용 동기비동기형 송수신기, 유자트USB Universal Serial BusUSER User Systems Ergonomics ResearchUSP User Stack PointerUSRT Universal Synchronous Rec

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.