Так уж получилось задал вопрос и сам на него нашел ответ. Вот код
| Код | 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. У меня не получилось. Оказалось нельзя верить всему что пишут в инете. |