masm, liczby po przecinku

0

witam, robie program ktory liczy bmi, i niestety podczas dzielenia zaokragla mi liczbę do 0
wzor na bmi (waga/ (wzrost*wzrosst))*10000, wzrost w cm
problem jest juz podczas dzielenia wagi przez wzrost kwadrat, wychodzi wtedy liczba poniżej 1 i mi zaokragla do 0. jak zrobic, aby zaokraglilo np do 2 miejsc po przecinku?
z pola EditID to waga
z pola Edit1ID to wzrost

 .386
.model flat,stdcall
option casemap:none

include    \masm32\include\windows.inc
include    \masm32\include\user32.inc
include    \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
      szText MACRO Name, Text:VARARG
        LOCAL lbl
          jmp lbl
            Name db Text,0
          lbl:
        ENDM
.data
Klasa       db "klasa",0
Tytul       db "Program Pudziana",0
classButton db "BUTTON",0
Button2Text db "Wynik",0
Button3Text db "Wpisz",0
Button4Text db "Wyjdź",0
classEdit   db "EDIT",0
TekstPrzykladowy db "Pudzian",0
szDecFrmt  DB "%0d", 0
szBuf      DB 512 dup (0)

.data?
hInstance   HINSTANCE ?
hEdit       dd ?
wynik       real4 ?
hButton2    dd ?
hButton3    dd ?
hButton4    dd ?
wzrost       real4 ?
waga       real4 ?

.const
EditID      equ 2
Edit1ID     equ 6
Button2ID   equ 3
Button3ID   equ 4
Button4ID   equ 5

.code
start:
............


        invoke GetDlgItemInt, hWnd, EditID, NULL, FALSE
        push eax
        invoke GetDlgItemInt, hWnd, Edit1ID, NULL, FALSE
        mov ebx, eax
        pop eax
        mov waga,eax
        mov wzrost,ebx
        mov eax, wzrost
        mul ebx
        mov wynik,eax
        mov eax, waga
        mov ebx, wynik
        div ebx
        mov wynik,eax

          INVOKE wsprintf, ADDR szBuf, ADDR szDecFrmt, wynik
          invoke MessageBox,hWnd,addr szBuf,addr Tytul,MB_OK or MB_ICONEXCLAMATION
...........
end start

prosze o pomoc i pozdrawiam

0

fdiv

0

ok,poradzilem sobie, i chyba sam fdiv by nie wystarczyl;p pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1