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까지의 값이된다)