Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Сопроцессор и FASM


Автор: Moky 4.3.2013, 11:10
Так уж получилось задал вопрос и сам на него нашел ответ.
Вот код
Код

  format PE GUI 4.0
entry start 
include 'win32ax.inc'
INCLUDE 'api\user32.inc'

section '.data' data readable writable

achi    dd 70.05; слагаемое a
bchi    dd 9.2; слагаемое b
res     dd  ? 
formats db 'Сумма = %.02i.%.02i',0
result  db 256 dup (?)
const   dd 100


section '.code' code readable executable

start:

  finit; иницилизация сипроцессора
   fld dword [achi] ; помещаем слагаемое а в st(0)     st0=70.05
    fadd [bchi] ; прибавляем к st(0) второе слагаемое st0=79.25
     fmul [const] ; умножаем st(0) на 100                    st0=7925
      fstp dword [res] ; помещаем результат в ячейку памяти
       ffree   st0 ; очистка регистра st(0)
        fwait ; синхронизацая работы процессора и сопроцессора

        mov     eax,[res] ; пересылаем содержимое ячейки памяти в регистр eax еах=7925
        xor     edx,edx; очищаем регистр edx для приема остатка от деления еах=7925 edx=0
        mov     ecx,[const]; пересылаем в регистр ecx число 100 еах=7925 edx=0 ecx=100
        div     ecx ; делим содержимое регистра еах на 100 еах=79 edx=25 ecx=100


  ;Подготавливаем результат сложения к выводу
  invoke wsprintf,result,formats,eax, edx
; выодим результат
  invoke MessageBox, 0,result, 'Сопроцессор', MB_OK

     invoke ExitProcess,0 


      section '.idata' import data readable

library kernel32,'KERNEL32.DLL',user32,'USER32.DLL'
INCLUDE 'api\kernel32.inc'

Просто меня сбила с толку одна маленькая заметка в инете и я пытался прикрутить к FASMу функцию  FpuFLtoA. У меня не получилось. Оказалось нельзя верить всему что пишут в инете.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)