我需要在汇编程序中编写一个程序来计算多项式的值。我有两个文件:
- C 源文件
- ASM 源文件
C 文件:
#include <stdio.h>
#include <stdlib.h>
double func(double,double);
int main()
{
double x=3;
double y=2;
printf("%f\n",func(x,y) );
return 0;
}
ASM 文件:
.386 .model flat, c .stack 100h
.DATA
var DW 27
.code
func PROC a:QWORD, b:QWORD
finit
fld b
fld b
fmul
fld b
fmul
fld a
fld a
fmul
fld a
fmul
mov ax, [var]
push ax
fmul
fdiv
fwait
RET
func ENDP
end
在这个阶段我想要实现的是 (b^3) / (27 * a^3) 的值。可能 mov 和 push 是问题的原因。
结果我得到-1.#IND00
我在 Windows 上,使用 Visual Studio 2012 编译器。对于编译,我使用 VS2012 命令行和以下 bat 文件:
del *.obj
cl -c poly.c
ml -c poly.asm
cl poly.obj poly.obj
还:
有什么方法可以创建一个具有 2 个以上参数的过程?