ASSEMBLER
Помогите написать программу на assembler
Для решения уравнения его удобнее преобразовать, возведя обе части в квадрат. Получится квадратное уравнение
x^2-9x+14=0, которое имеет два корня. И решать как обычно: дискриминант, и т. д.
intel80386, MASM, Win32, консоль, сопроцессор, библиотека msvcrt.dll:
.386
.model flat, c
option casemap :none
printf proto :dword, :vararg
_getch proto
_exit proto :dword
.data
Bc dw -9
Cc dw 14
Result db "Корни уравнения: ", 13, 10,\
"X1 = %.3f", 13, 10, \
"X2 = %.3f", 13, 10, 10,\
"Для завершения работы нажмите любую клавишу... ", 0
.data?
X1 dq ?
X2 dq ?
.code
N177439129:
finit
fild Bc
fimul Bc
mov dword ptr X2, 20004h
fild Cc
fimul word ptr X2
fsub
fsqrt
fild Bc
fchs
fld st(0)
fld st(2)
fsub
fidiv word ptr X2 + 2
fstp X1
fadd
fidiv word ptr X2 + 2
fstp X2
invoke printf, addr Result,\
dword ptr X1, dword ptr X1 + 4,\
dword ptr X2, dword ptr X2 + 4
invoke _getch
invoke _exit, 0
end N177439129