; Copyright 2020 KoroLion (github.com/KoroLion)

global sum
global fx

section .data
section .bss
    temp: resb 4

section .text

; float sum(float x, float y)
; return x + y
sum:
    finit

    fld dword [esp + 4]  ; st0 = x
    fadd dword [esp + 8] ; st0 += y

    ret ; returns st0 to c

; float fx(float x)
; return 1 / (x + 2)
fx:
    ; st1
    fld dword [esp + 4] ; st1 = x
    mov dword [temp], 2
    fiadd dword [temp] ; st1 += 2

    ; st0
    mov dword [temp], 1
    fild dword [temp] ; st0 = 1

    fdiv st0, st1 ; st0 /= st1

    ret ; returns st0 to c
