목차
1. 과제 개요
2. 내용
3.참고문헌
2. 내용
3.참고문헌
본문내용
다. 이렇게 해서 마우스 입력을 계속해서 할 수 있다.
-만약에 9를 누르게 되면 해당 좌표로 JMP해 9를 찾아내서 출력 할 수 있다.
-lea명령어를 사용하여 메모리의 offset 값을 레지스터로 LOAD 한다.
-m9에 해당하는 9값을 LOAD하게 된다.
- Secret_KeyNumber를 비교하여서 지정한 값이 맞는지 확인 후 다음 스크린으로 넘어가는 부분이다.
- @Next에 clear_screen macro2를 이용하여 화면을 지우도록 설계.
- 화면을 지운 후 나오게 되는 화면이다. MAINPRINT
< 출 력 화 면 >
- 바로 다음의 코드이다. Mian 함수로 각종 프로그램의 기본적인 설정 값을 설정해주는 부분이다.
- 다음 코드는 최초 INPUT코드 이다. 계산기의 라이프모드와 엔지니어 모드로 넘어 갈수 있는 부분이다. cmp명령어를 사용하여 ‘l’‘e’와 비교한다. 비교하여서 ZF가 0 이면 해당 모드로 jump를 하도록 만든 코드이다.
다음의 코드는 INPUT1,INPUT2 이다.
이 코드는 최초의 모드선택에서 엔지니어 모드로 설정을 하면 INPUT1으로 JUMP를 하여 바로 인풋 값을 받는다.
- 다음의 코드는 INPUT1,INPUT2 이다.
이 코드는 최초의 모드선택에서 E 모드로 설정을 하면 INPUT1으로 JUMP를 하여 바로 INPUT 값을 받는다.
다음 코드는 OPERAND1 부분이다. 이 부분은 INPUT1에서 값을 입력을 받고 이곳으로 점프를 해와 ‘q’ ‘Q’를 누르면 다시 최초 모드 선택으로 가고 ‘9’의 아스키코드 값과 비교하여서 9보다 아스키 값이 크게 되면 ERR로 점프를 하고 아스키코드 값이 0보다 작다면 연산자로 인식을 하여 OPERTAND1END로 점프를 하게 만들었다. 사칙 연산자들은 0보다 아스키 값이 작기 때문이다.
OPERAND1END의 코드 이다. 보는 것과 같이 CMP 명령을 이용하여 연산자들의 아스키코드 값과 비교를 하여 같다면 OPERATIONCHECK로 점프 하도록 만들었다. 위의 아스키코드와 매치가 안 되는 것은 마지막 ERR로 점프를 하게 만들었다.
OPERATIONCHECK에서는 인풋 값을 STACK에 넣고 DX 값을 초기화를 한다.
이 코드를 지나서 OPERAND2로 가게 된다. 이곳에서는 수식을 입력을 받고 ODOA를 입력을 받으면 CALCUL로 점프하도록 만들었다.
다음 코드는 CALCUL부분이다.
연산자들을 비교하여 해당 연산자의 알고리즘으로 점프를 하게 만들었다.
알고리즘의 하나인 FEET변환부분 이다.
각각의 알고리즘에는 마지막에 MAKERESULT로 점프를 하라는 명령이 있다.
MAKERESULT로 점프를 하여서 오게 되면 우선 결과 값이 0인지를 비교하게 된다. 값이 0 이라면 RESULT0으로 점프를 하여 0을 출력을 한다. 값이 0값이 아니라면 다음 줄의 MAKEDECIMAL로 넘어가서 10과 비교를 하여 10이면 MAKERESULTTEND으로 점프 아니면 그냥 밑으로 내려가서 결과 값을 표시를 한다.
마지막으로 CALEND코드이다.
이 부분은 결과 값을 아웃풋 한 후 화면을 클리어 시켜주는 역할을 한다.
2.5 시험 및 평가
- EMU8086의 Compile 기능을 이용하여 작성한 코드의 문법이 잘못된 것이 없는지 확인
- EMU8086의 Emulate 기능을 이용하여 작성한 코드가 Run되는지 확인
- 계산기의 기능 및 비밀번호 기능이 동작하고 추가한 기능이 실행되는지 확인
2.6 현실적 제한요소
설계구성
요소
현실적 제약조건
목표설정
합성
분석
제작
시험평가
산업표준
- 산업표준 기준에 맞도록 설계되어 있기 때문에 관계없음.
경제
- 학교에서 교육용 목적으로 실험 및 실습을 진행하기
때문에 경제적인 문제가 낮음.
환경
- 순수 소프트웨어 시스템으로 환경에 관련된 요인은 없음
윤리
- 이미 제작된 제품을 모방하기 때문에 윤리적인문제에
접촉되지 않게 한다.
안전
- 사용자의 편의성을 위해 단순하게 만들 것 이며,
따로 유저정보를 입력하지 않기 때문에
개인정보유출에는 안전함.
사회/ 정치
- 학생의 교육용으로 제작 및 실험을 하기 때문에 사회,
정치적으로 영향이 적음.
3. 참고문헌
- 뇌를 자극하는 프로그래밍 원리 (2007, 한빛미디어)
- 어셈블러로 배우는 마이크로프로세서 (2006, 한빛미디어)
- The x86 PC, assembly language, design, and interfacing, fifth edition (수업 교재)
-만약에 9를 누르게 되면 해당 좌표로 JMP해 9를 찾아내서 출력 할 수 있다.
-lea명령어를 사용하여 메모리의 offset 값을 레지스터로 LOAD 한다.
-m9에 해당하는 9값을 LOAD하게 된다.
- Secret_KeyNumber를 비교하여서 지정한 값이 맞는지 확인 후 다음 스크린으로 넘어가는 부분이다.
- @Next에 clear_screen macro2를 이용하여 화면을 지우도록 설계.
- 화면을 지운 후 나오게 되는 화면이다. MAINPRINT
< 출 력 화 면 >
- 바로 다음의 코드이다. Mian 함수로 각종 프로그램의 기본적인 설정 값을 설정해주는 부분이다.
- 다음 코드는 최초 INPUT코드 이다. 계산기의 라이프모드와 엔지니어 모드로 넘어 갈수 있는 부분이다. cmp명령어를 사용하여 ‘l’‘e’와 비교한다. 비교하여서 ZF가 0 이면 해당 모드로 jump를 하도록 만든 코드이다.
다음의 코드는 INPUT1,INPUT2 이다.
이 코드는 최초의 모드선택에서 엔지니어 모드로 설정을 하면 INPUT1으로 JUMP를 하여 바로 인풋 값을 받는다.
- 다음의 코드는 INPUT1,INPUT2 이다.
이 코드는 최초의 모드선택에서 E 모드로 설정을 하면 INPUT1으로 JUMP를 하여 바로 INPUT 값을 받는다.
다음 코드는 OPERAND1 부분이다. 이 부분은 INPUT1에서 값을 입력을 받고 이곳으로 점프를 해와 ‘q’ ‘Q’를 누르면 다시 최초 모드 선택으로 가고 ‘9’의 아스키코드 값과 비교하여서 9보다 아스키 값이 크게 되면 ERR로 점프를 하고 아스키코드 값이 0보다 작다면 연산자로 인식을 하여 OPERTAND1END로 점프를 하게 만들었다. 사칙 연산자들은 0보다 아스키 값이 작기 때문이다.
OPERAND1END의 코드 이다. 보는 것과 같이 CMP 명령을 이용하여 연산자들의 아스키코드 값과 비교를 하여 같다면 OPERATIONCHECK로 점프 하도록 만들었다. 위의 아스키코드와 매치가 안 되는 것은 마지막 ERR로 점프를 하게 만들었다.
OPERATIONCHECK에서는 인풋 값을 STACK에 넣고 DX 값을 초기화를 한다.
이 코드를 지나서 OPERAND2로 가게 된다. 이곳에서는 수식을 입력을 받고 ODOA를 입력을 받으면 CALCUL로 점프하도록 만들었다.
다음 코드는 CALCUL부분이다.
연산자들을 비교하여 해당 연산자의 알고리즘으로 점프를 하게 만들었다.
알고리즘의 하나인 FEET변환부분 이다.
각각의 알고리즘에는 마지막에 MAKERESULT로 점프를 하라는 명령이 있다.
MAKERESULT로 점프를 하여서 오게 되면 우선 결과 값이 0인지를 비교하게 된다. 값이 0 이라면 RESULT0으로 점프를 하여 0을 출력을 한다. 값이 0값이 아니라면 다음 줄의 MAKEDECIMAL로 넘어가서 10과 비교를 하여 10이면 MAKERESULTTEND으로 점프 아니면 그냥 밑으로 내려가서 결과 값을 표시를 한다.
마지막으로 CALEND코드이다.
이 부분은 결과 값을 아웃풋 한 후 화면을 클리어 시켜주는 역할을 한다.
2.5 시험 및 평가
- EMU8086의 Compile 기능을 이용하여 작성한 코드의 문법이 잘못된 것이 없는지 확인
- EMU8086의 Emulate 기능을 이용하여 작성한 코드가 Run되는지 확인
- 계산기의 기능 및 비밀번호 기능이 동작하고 추가한 기능이 실행되는지 확인
2.6 현실적 제한요소
설계구성
요소
현실적 제약조건
목표설정
합성
분석
제작
시험평가
산업표준
- 산업표준 기준에 맞도록 설계되어 있기 때문에 관계없음.
경제
- 학교에서 교육용 목적으로 실험 및 실습을 진행하기
때문에 경제적인 문제가 낮음.
환경
- 순수 소프트웨어 시스템으로 환경에 관련된 요인은 없음
윤리
- 이미 제작된 제품을 모방하기 때문에 윤리적인문제에
접촉되지 않게 한다.
안전
- 사용자의 편의성을 위해 단순하게 만들 것 이며,
따로 유저정보를 입력하지 않기 때문에
개인정보유출에는 안전함.
사회/ 정치
- 학생의 교육용으로 제작 및 실험을 하기 때문에 사회,
정치적으로 영향이 적음.
3. 참고문헌
- 뇌를 자극하는 프로그래밍 원리 (2007, 한빛미디어)
- 어셈블러로 배우는 마이크로프로세서 (2006, 한빛미디어)
- The x86 PC, assembly language, design, and interfacing, fifth edition (수업 교재)
소개글