카테고리 없음

FPU, FILD, FSTP

컴공 2013. 4. 10. 00:21
반응형

FILD 명령 

- 16비트, 32비트, 64비트 정수를 double extended-precision floating-point 포맷(80 bit extended precision 포맷)으로 변환한 다음 그 결과 값을 FPU 스택에 PUSH 하는 명령이다.

- 단 하나의 operand 만을 사용한다.

- FILD 명령에서 사용되는 operand는 반드시 16비트, 32비트, 64비트 메모리 주소여야 한다.

(operand로 레지스터가 사용되면 안된다)

- 만약 레지스터의 내용을 FPU 스택에 PUSH 하고 싶다면, 레지스터의 내용을 먼저 메모리에 저장한 다음에 FILD 명령을 이용해서 해당 메모리의 값을 FPU 스택에 PUSH 해야 한다.

FST/FSTP 명령

- FST와 FSTP 명령은 FPU 스택의 Top(top of the floating point register stack, ST(0))에 있는 값을 또 다른 부동 소수점 레지스터나 32비트, 64비트, 80비트 메모리 변수에 복사한다.

- FSTP 명령은 레지스터는 ST(0)의 값을 복사한 다음에 FPU 스택에서 복사한 값을 POP한다.

(FST 명령은 POP을 수행하지 않는다.)

- 따라서, FPU 스택에서 POP을 수행하느냐 하지 않는냐의 차이가 FSTP 명령과 FST 명령의 차이다)

ST 또는 ST(0) : FPU 레지스터 스택의 Top Element를 의미한다.
ST(i) : FPU 레지스터 스택의 Top으로 부터 i 번째에 있는 Element를 의미한다.

(i의 값은 0에서 7까지의 값이된다)

반응형