1234567891011121314151617181920212223242526272829303132333435363738394041 |
- global _start
- section .data
- align 16
- float0low:
- dd 12345.678
- float0high:
- dd 1234.5
- float1low:
- dd 0x80000001.0
- float1high:
- dd -2147483130.0
- mxcsr:
- dd 0
- ; Set mxcsr regiter rouding bits
- %macro setRoundingBits 1
- stmxcsr [mxcsr]
- mov eax, [mxcsr]
- and ax, 0x9F80
- or ah, %1
- mov [mxcsr], eax
- ldmxcsr [mxcsr]
- %endmacro
- %include "header.inc"
- setRoundingBits 0x00 ; Round to nearest
- cvtps2pi mm0, [float0low]
- cvtps2pi mm4, [float1low]
- setRoundingBits 0x20 ; Round down
- cvtps2pi mm1, [float0low]
- cvtps2pi mm5, [float1low]
- setRoundingBits 0x40 ; Round up
- cvtps2pi mm2, [float0low]
- cvtps2pi mm6, [float1low]
- setRoundingBits 0x60 ; Round toward zero
- cvtps2pi mm3, [float0low]
- cvtps2pi mm7, [float1low]
- %include "footer.inc"
|