Top.Mail.Ru
Ответы

ASSEMBLER

Помогите написать программу на assembler

По дате
По рейтингу
Аватар пользователя
Просветленный
11лет

Для решения уравнения его удобнее преобразовать, возведя обе части в квадрат. Получится квадратное уравнение
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



Видео по теме