[컴퓨터 프로그래밍] 어셈블리(mips) 사칙연산 계산기
- 등록일 / 수정일
- 페이지 / 형식
- 자료평가
- 구매가격
- 2007.12.30 / 2019.12.24
- 9페이지 / hwp (아래아한글2002)
- 4건 (구매금액의 3%지급)
- 2,000원
최대 20페이지까지 미리보기 서비스를 제공합니다.
자료평가하면 구매금액의 3%지급!
1
2
3
4
5
6
7
8
9
추천 연관자료
- 하고 싶은 말
-
제가 여러가지 식과 경우를 입력해 보면서 테스트한 결과 정상적으로 잘 작동되었습니다. 모든 예외처리가 되지는 않지만 어느정도 예외처리도 되고 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
자료평가
- 잘정리되어있는자료이네요
- tmdal***
(2016.05.06 15:38:37)
- 아 개싀뱔 낚였네 돈물어내라 ㅅㅂㄻ 뭐가 되는데
- ja***
(2008.06.10 21:07:48)
- 이건 뭐....
- cjswowhd***
(2008.05.27 23:49:03)
- 막말로 환불 받고 싶네요 ㅡㅡ;; F5번을 눌르고 실행 시켰을경우 합계에서 에러가 납니다.
실행시킨데로 했는데도 그렇습니다. 그러나 F10번을 눌르고 노가다 뛰면 정상작동합니다.
이건 좀 잘 못 된것 아닙니까?? 에러나는 부분도 못 찾겠습니다.
됐다 안됐다 하는데....당황스럽네요. - pktae***
(2008.05.14 09:11:46)