Proc Code:
Values PROC ,
文字:PTR BYTE,listPtr:PTR BYTE
mov edx,Text
L1: call WriteString
call ReadFloat
fild 100
fcomp comVal
jg endLoop
fild 100
fcomp comVal
jl endPRoc
fstp REAL8 PTR [esi]
add esi, TYPE REAL8
endProc:
值ENDP
我使用invoke storeValues, ADDR prompt, ADDR List
调用它并获取错误2001并对如何修复它感到困惑
答案 0 :(得分:1)
如Intel Software Manual第830页中所定义,FILD采用内存操作数,而不是直接操作数:
DF /0 FILD m16int Valid Valid Push m16int onto the FPU register stack. DB /0 FILD m32int Valid Valid Push m32int onto the FPU register stack. DF /5 FILD m64int Valid Valid Push m64int onto the FPU register stack.
您想要在数据段中定义常量,并指向它。 类似的东西:
.data
hundred dd 100
; ....
.code
fild dword ptr [hundred]