我正在编写一个计算 arctan 函数的程序。
可以正常工作的功能,但是当我尝试获取 bcd-value fbstp 命令存储奇怪的值和 fstp 存储正确的值时。
segment data
result: resb 10
tmp_val: dd 000000000h
precs: dq 03a83126fh ; 0.001
arg: dd 03f800000h ; 0.7
segment code
..start:
mov ax,data
mov ds, ax
finit
call calc_value
fst dword[tmp_val]
fbstp tword [result]
mov ax, 4C00h
int 21h
在 tmp_val: 0x3f490edb (0.785383)
和结果在内存中执行后: 0x0000000000000000001
我为 DOS 写这个