★ 어셈블리 부동소수점 연산 소스 + 보고서 ★
*영*
다운로드
장바구니
소개글
인텔 x86에서 어셈블리어를 이용한 부동 소수점 처리 연산기를 만들어 보았습니다. 우선 우리가 사용하는 컴퓨터가 어떻게 부동 소수점을 처리하는지 궁금하기에 이와 같은 과제를 선택하였고, x86 계열의 컴퓨터가 지금의 사용하는 컴퓨터가 우리의 생활에 많은 도움이 되고 있다는 것입니다.어셈블리어를 구현하기 전에 컴퓨터의 발전하면서 부동소수점을 어떻게 사용하게 되었는지, 부동소수점을 나타내기 위해 x87 FPU가 사용되었는데 이는 무엇인지, 이는 어떠한 기준이 있는지, 우리가 사용하는 FPU 에는 무엇이 있는지 알아보았고, 이를 바탕으로 16비트에서의 부동 소수점 구현과, 간단한 연산작동을 하는 +, - 연산자를 구현해 보았습니다. 이 연산기를 구현 하면서 몇몇 가지 어려운 점에 접하게 되고, 어떻게 구현할 것인가에 대해서 생각해보고, 이를 해결하기 위해서 어떻게 해야 하는지 논의하고 설계해서 구현가능토록 해보았습니다.
결국 우리가 사용하는 FPU 프로세서는 손쉽게 부동 소수점을 사용할 수 있게 해주고 컴퓨터에서 좀 더 빠르고, 각종 수학적 연산을 가능케 하는 x87 FPU 가 우리에게 많은 장점들을 가져다주고 있다는 것을 알았습니다. 좀 더 많은 시간이 있었다면, 16비트뿐 아니라 지금 사용하고 있는 32비트의 컴퓨터에서 구현 가능한 연산기, 그리고 +, - 연산뿐만이 아니라 *, / 의 연산까지 구현 하고 싶었습니다.
★ 부록에 프로그램 소스 첨부하였습니다. ★
목차
Ⅰ. 과제 개요1.1 소개
1.2 수행 동기 및 목적
1.3 수행 내용
1.4 기술 동향
1.4.1 사용 프로그램
1.4.2 인텔 x86 계열의 컴퓨터 발달 과정
Ⅱ. 부동 소수점
2.1 x87 FPU
2.2 IEEE 754에 따른 단정도, 배정도 표현
Ⅲ. 16비트에서 부동소수점 구현
3.1 주요 소스
3.2 동작 화면
Ⅴ. 결론
5.1 활용 방안 및 기대 효과
5.2 향후 수행 내용
부 록
목표 대비 수행비율
본문내용
인텔 x86에서 어셈블리어를 이용한 부동 소수점 처리 연산기를 만들어 보았습니다. 우선 우리가 사용하는 컴퓨터가 어떻게 부동 소수점을 처리하는지 궁금하기에 이와 같은 과제를 선택하였고, x86 계열의 컴퓨터가 지금의 사용하는 컴퓨터가 우리의 생활에 많은 도움이 되고 있다는 것입니다.어셈블리어를 구현하기 전에 컴퓨터의 발전하면서 부동소수점을 어떻게 사용하게 되었는지, 부동소수점을 나타내기 위해 x87 FPU가 사용되었는데 이는 무엇인지, 이는 어떠한 기준이 있는지, 우리가 사용하는 FPU 에는 무엇이 있는지 알아보았고, 이를 바탕으로 16비트에서의 부동 소수점 구현과, 간단한 연산작동을 하는 +, - 연산자를 구현해 보았습니다. 이 연산기를 구현 하면서 몇몇 가지 어려운 점에 접하게 되고, 어떻게 구현할 것인가에 대해서 생각해보고, 이를 해결하기 위해서 어떻게 해야 하는지 논의하고 설계해서 구현가능토록 해보았습니다.
결국 우리가 사용하는 FPU 프로세서는 손쉽게 부동 소수점을 사용할 수 있게 해주고 컴퓨터에서 좀 더 빠르고, 각종 수학적 연산을 가능케 하는 x87 FPU 가 우리에게 많은 장점들을 가져다주고 있다는 것을 알았습니다. 좀 더 많은 시간이 있었다면, 16비트뿐 아니라 지금 사용하고 있는 32비트의 컴퓨터에서 구현 가능한 연산기, 그리고 +, - 연산뿐만이 아니라 *, / 의 연산까지 구현 하고 싶었습니다.
Ⅰ. 과제 개요
1.1 소개
본 과제는 컴퓨터가 발전하면서 부동소수점은 어떻게 표현해 왔는지 알아보고, 지금 부동 소수점을 어떠한 방식으로 사용하고 있는지 알아보고 간단하게 16비트에서 동작하도록 연산기를 설계하고 개발해 보려고 한다.
1.2 수행 동기 및 목적
우리가 사용하는 부동 소수점은 어떻게 구성되어 있는지 알아보고, 16비트에서 동작하는 부동소수점 처리를 위한 연산기를 만들어보려고 한다.
1.3 수행 내용
부동소수점에 대하여 알아보고, 부동소수점의 다른 종류들도 있는지 알아보고, 다른 방법에는 어떠한 것들이 있는지, 또는 다른 방법이 있는지 알아보고 적당한 16비트의 연산기를 설계, 개발 한다.
1.4 기술 동향
1.4.1 사용 프로그램
우리가 어셈블리어 프로그램을 만들기 위하여 emu8086을 사용하고, 이 emu8086 프로그램에서 어셈블리어 한줄, 한줄 체크해가면서 변수의 실시간 체크가 가능하고, 레지스터의 용도를 늘려서 사용할 수 있다.
1.4.2 인텔 x86 계열의 컴퓨터 발달 과정
intel사의 cpu 발달 순서
8086→8088→80286→80386DX→80386SX→80486DX→80486SX→
Pentium→PentiumPro→Pentium MMX→PentiumII
1. 8086,8088
인텔이 1976년에 처음으로 16비트급 마이크로프로세서를 발명한 8086과 8088은 흔히 "XT 컴퓨터" 라는 이름으로 더 유명한 기종이기도 하다.
2. 80286
- 8088은 내부적으로는 16비트, 외부적으로는 8비트로 데이터를 주고받는다.- 80286은 내/외부적으로 완벽한 16비트 처리가 가능한 완전한" 16비트 CPU"이다.
-80286의 특징
① 속도의 향상과 완벽한 16비트 컴퓨터의 구현.
② 메모리상에 있어서 한계의 극복: 8088까지는 메모리를 1MB까지 관리할 수 있었으나 80286은 16MB까지 메모리를 관리할 수 있었다.
③ 가상 메모리 기능의 사용: 가상 메모리 기능을 사용하여 외부 메모리를 1GB까지 사용할 수 있게 되었다.