Поэтому извините, если мне не удалось это угадать.
%include 'win32n.inc'
extern wsprintfA
import wsprintfA user32.dll
extern MessageBoxA
import MessageBoxA user32.dll
extern ExitProcess
import ExitProcess kernel32.dll
section data use32 class = data
a dw 3
c dw 5
d dw 6
Const1 dw 2
Const2 dw 33
Scale dw 10
Title db 'Результат',0
Result db 'y = (c - d/2 + 33) / (2 * a^2 - 1),',13,10
db 'где c = 5, d = 6, a = 3',13,10
db 'Y = %d.%s',0
IntY resd 1
FracStr resb 17
Buffer resb 80
section code use32 class = code
..start:
finit
fstcw word [IntY]
or word [IntY],0x0C00
fldcw word [IntY]
fild word [c]
fild word [d]
fidiv word [Const1]
fsub
fiadd word [Const2]
fild word [a]
fimul word [a]
fimul word [Const1]
fld1
fsub
fdiv
fist dword [IntY]
fisub dword [IntY]
mov ecx,16
mov edi,FracStr
DoLoop:
fimul word [Scale]
fist word [edi]
fisub word [edi]
add byte [edi],0x30
inc edi
loop DoLoop
mov byte [edi],0
push FracStr
push dword [IntY]
push Result
push Buffer
call [wsprintfA]
add esp,16
push MB_OK
push Title
push Buffer
push 0
call [MessageBoxA]
push 0
call [ExitProcess]
P.S. Процессор Intel 80386/387 и выше, 32-разрядное приложение Windows (неконсольное) , компилятор NASM.
Результат выполнения:
