回 帖 发 新 帖 刷新版面

主题:跪问无比英俊潇洒的大大们一个关于多项式运算的问题

问题:例如某多项式y = -9.8108x2+20.1293x-0.0317,输入x,求出y。怎么编程序?大大们,拜托了~[em10]

回复列表 (共2个回复)

沙发

;为了省事,使用了 win32 汇编
;y = -9.8108x2+20.1293x-0.0317

.386
.model flat, stdcall
option casemap :none

include     windows.inc
include        kernel32.inc

includelib    kernel32.lib
includelib     MSVCRT.LIB

.data
x        dq    ?
y        dq    ?
tmp1    dq    -9.8108
tmp2    dq    20.1293
tmp3    dq    0.0317

szMsg1    db    'please input x:', 0
szFmt1    db  '%f', 0
szFmt2    db    'result: %f', 0

scanf proto C :DWORD, :VARARG
printf proto C :DWORD, :VARARG



.code
_main:
        invoke    printf, addr szMsg1
        invoke    scanf, addr szFmt1, addr x
        
        fld        qword ptr tmp1
        fmul    qword ptr x
        fadd    st, st    ;* 2
        fld        qword ptr tmp2
        fmul    qword ptr x
        faddp    st(1), st
        fsub    qword ptr tmp3
        fstp    qword ptr y    ;保存结果
        
        invoke    printf, addr szFmt2, y
        
        invoke    ExitProcess, 0
end _main

板凳

谢谢上面的大大,不过我想用51单片机的汇编写,好像很麻烦。给个思路也行

我来回复

您尚未登录,请登录后再回复。点此登录或注册