ИГ
Size: a a a
ИГ
D
SZ
ИГ
ИГ
M
ИГ
ИГ
A
format PE
entry start
include 'win32a.inc'
A_=77
B_=9
section '.text' code readable executable
start: FILD [A] ;get some value
FILD [B]
FDIVP
;now saving
MOV eax, bcd
MOV ebx, buf+21
FILD dword [precision]
FMULP
FBSTP [eax]
nxt:
MOV dl, byte [eax]
INC eax
MOV dh, dl
SHR dl, 4
AND dh, 15
ADD dx, '00'
SUB ebx, 2
MOV [ebx], dx
CMP ebx, buf+21-PRECISION_LVL
JNZ np
DEC ebx
np: CMP eax, bcd+10
JNZ nxt
;lazy output
invoke GetStdHandle,-11
invoke WriteFile,eax,buf,21,dummy,0
invoke ExitProcess,0
section '.bss' readable writeable
dummy dd ?
PRECISION_LVL=8
PRECISION_MUL=100000000
section '.data' data readable writeable
A dd A_
B dd B_
bcd db 10 dup 0
buf db 21 dup '.'
precision dd PRECISION_MUL
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL'
import kernel,\
GetStdHandle,'GetStdHandle',\
ExitProcess,'ExitProcess',\
WriteFile ,'WriteFile'
II
II
A
real10 db 0,0,0,0,0,0,0,0x80,0xFF,0x7F ;+бесконечность
real10 db 0,0,0,0,0,0,0,0x80,0xFF,0xFF ;-бесконечность
real10 db -1,0,0,0,0,0,0,0x80,0xFF,0x7F ;+NaN
real10 db -1,0,0,0,0,0,0,0x80,0xFF,0xFF ;-NaN
илиdd -0.00000001234567890e-25
楽
ИГ
ИГ
II