例11.8 已知L=4.0,F按每次递增10.0的幅度从10.0增加到1000.0,试按公式Y=2πFL,计算出100个Y值,并把它们存入数组RES中。
解: |
||||
.MODEL SMALL | ||||
.386 | ||||
.387 | ||||
.DATA | ||||
L |
DD 4.0 | |||
F |
DD 1000.0 | ;为了便于循环控制,F“从大到小”来计算 | ||
TEN |
DD 10.0 | |||
Y |
DD 100 DUP(?) | |||
.CODE | ||||
.STARTUP | ||||
FLDPI | ;装入π | |||
FADD | ST, ST(0) | ;自身相加,得到2π | ||
FMUL | L | ;计算出不变的结果2πL | ||
MOV | ECX, 100 | |||
MOV | EDI, OFFSET Y-4 | |||
again: | ||||
FLD | F | |||
FMUL | ST, ST(1) | ;得到一个计算结果2πLF | ||
FSTP | dword ptr [EDI+4*ECX] | ;保存当前得到结果(从后向前) | ||
FLD | F | |||
FSUB | TEN | |||
FSTP | F | ;F的值变小10.0 | ||
LOOP | again | |||
FCOMP | ;先前计算出结果2πL出栈,使之为空 | |||
.EXIT 0 | ||||
END |