마이크로프로세서] EMU8086을 이용한 계산기 구현 코드(주석 포함)
- 최초 등록일
- 2019.03.21
- 최종 저작일
- 2017.11
- 16페이지/ 압축파일
- 가격 5,000원
목차
1. 개요
2. 내용
3. 역할 분담
4. 실행 화면
5. 주요 코드 설명
6. 전체 코드
7. 소감
본문내용
⚪ 개요
마이크로프로세서 프로젝트를 위한 간단한 공학용 계산기이다. 어셈블러 EMU8086을 이용하여 한 학기동안 배운 어셈블 언어로 공학용 계산기를 구현함으로써 PC 내의 연산 및 메모리와 STACK의 처리 과정을 익힐 수 있다.
⚪ 내용
1. 계산기의 기능에는 간단한 +, -, *, /, () 기능부터 제곱, 제곱근, 삼각함수의 기능이 있다.
2. 각 연산자는 모두 연산 순서를 지키며 연산을 수행한다.
3. 제곱근과 삼각함수에서 실수 값이 나올 시 곱하기 나누기는 제한되며, 소수점 값이 출력된다.
4. 소수점은 3자리까지 출력된다.
5. 제곱근과 삼각함수는 TABLE을 이용했으며, 제곱근은 0 ~ 99까지의 입력만을 받는다.
6. 에러가 발생할 시 소리가 발생하며 프로그램 하단에 에러 메시지를 출력한다.
7. Enter 입력 시 지금까지 입력한 식을 계산한다.
8. Backspace 입력 시 지금까지 입력한 모든 식을 지운다.
9. Q 입력 시 계산기 프로그램을 종료한다.
⚪ 역할 분담
본인 → 제곱, 삼각함수, 소수점
○○○ → 제곱근, 연산 순서, 괄호
공동 → 프로그램 인터페이스 및 나머지 기본 연산자
⚪ 실행 화면
실행 화면은 시작 화면, 계산기 화면, 종료 화면 3가지로 나뉘어져 있다.
< 중 략 >
※ 코드 분석
; - 제곱 연산 [(DX) ^ (AX)]
POW_SIGN:
SUB NUMBER_COUNT, 1
POP AX
CMP AX, 0 ;AX가 0인지 확인
JE POW_ZERO
MOV CX, AX
DEC CX ;한 번은 곱해지므로 CX - 1
CMP NEGATIVE_NUM[DI-2], 0
JE POW_SET ;DX가 + 부호일 때 밑의 식을 SKIP
MOV BX, 2 ;DX가 - 부호일 때
MOV DX, 0
DIV BX
CMP DX, 0 ;AX를 2로 나눴을 때 나머지 값을 0과 비교
JE POW_PLUS ;AX = 짝수, 결과 값은 + 부호
JNE POW_MINUS ;AX = 홀수, 결과 값은 - 부호
참고 자료
없음
압축파일 내 파일목록
CALCULATOR for MICROPROCESSOR PROJECT.txt
INPUT 화면.png
개인 보고서.hwp
첫 화면.png