【发布时间】:2014-04-30 15:23:37
【问题描述】:
我想知道,我应该使用什么值来更改 FPU 舍入模式。
.data
nearest:
??
down:
??
up:
??
zero:
??
.text
.global round
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %ecx
cmpl $1, %ecx
je
fldcw nearest
cmpl $2, %ecx
je
fldcw down
cmpl $3, %ecx
je
fldcw up
cmpl $4, %ecx
je
fldcw zero
leave
ret
我发现了这样的东西:
down:
.byte 0x7f, 0x07
up:
.byte 0x7f, 0x0b
但我不知道为什么有人使用它。我知道我应该更改 8 位和 9 位,如下所示: 00 — 舍入到最近 01 — 向下舍入(向负无穷大) 10 — 向上取整(向正无穷大) 11 — 向零舍入
【问题讨论】:
-
我意识到应该是这样的:最近的.byte 0x7f, 0x00b, down: .byte 0x7f, 0x07, up.byte 0x7f, 0x70b, zero: .byte 0x7f, 0x77b ??跨度>
标签: linux assembly x86 att fpu