Subversion Repositories Kolibri OS

Rev

Rev 7615 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7615 Rev 7616
Line 3... Line 3...
3
;
3
;
Line 4... Line 4...
4
 
4
 
5
; Š®«¨ç¥á⢮ §­ ª®¢ ç¨á«  ¯®á«¥ § ¯ï⮩ (1-17)
5
; Š®«¨ç¥á⢮ §­ ª®¢ ç¨á«  ¯®á«¥ § ¯ï⮩ (1-17)
6
NumberSymbolsAD DW 5
6
NumberSymbolsAD DW 5
7
; Š®­áâ ­âë (10 ¢ á⥯¥­¨ N)
7
; Š®­áâ ­âë (10 ¢ á⥯¥­¨ N)
8
MConst DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5
8
MConst: DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5
9
       DQ 1.0E6,1.0E7,1.0E8,1.0E9,1.0E10
9
       DQ 1.0E6,1.0E7,1.0E8,1.0E9,1.0E10
10
       DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15
10
       DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15
11
       DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20
11
       DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20
12
       DQ 1.0E21,1.0E22,1.0E23,1.0E24,1.0E25
12
       DQ 1.0E21,1.0E22,1.0E23,1.0E24,1.0E25
Line 29... Line 29...
29
       DQ 1.0E106,1.0E107,1.0E108,1.0E109,1.0E110
29
       DQ 1.0E106,1.0E107,1.0E108,1.0E109,1.0E110
30
       DQ 1.0E111,1.0E112,1.0E113,1.0E114,1.0E115
30
       DQ 1.0E111,1.0E112,1.0E113,1.0E114,1.0E115
31
       DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120
31
       DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120
32
       DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125
32
       DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125
33
       DQ 1.0E126,1.0E127,1.0E128
33
       DQ 1.0E126,1.0E127,1.0E128
-
 
34
.end:
34
; —¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©­®© â®ç­®áâ¨
35
; —¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©­®© â®ç­®áâ¨
35
Data_Double   DQ ?
36
Data_Double   DQ ?
36
; —¨á«® ¢ BCD-ä®à¬ â¥ 
37
; —¨á«® ¢ BCD-ä®à¬ â¥ 
37
Data_BCD      DT ?
38
Data_BCD      DT ?
38
; ‚ᯮ¬®£ â¥«ì­ë© ä« £
39
; ‚ᯮ¬®£ â¥«ì­ë© ä« £
Line 300... Line 301...
300
	jle .NoMul ;¥á«¨ ç¨á«® e-..
301
	jle .NoMul ;¥á«¨ ç¨á«® e-..
301
	dec ebx
302
	dec ebx
302
	jz .NoDiv ;¥á«¨ ç¨á«® e+0
303
	jz .NoDiv ;¥á«¨ ç¨á«® e+0
303
	dec ebx
304
	dec ebx
304
	lea ebx,[MConst+8*ebx]
305
	lea ebx,[MConst+8*ebx]
-
 
306
	cmp ebx,MConst.end
-
 
307
	jl @f
-
 
308
		ffree st0
-
 
309
		fincstp
-
 
310
		jmp .Error ;¥á«¨ ®ç¥­ì ¡®«ì讥 ç¨á«® e+**
-
 
311
	@@:
305
	fmul qword [ebx] ;㬭®¦¨âì ­  ª®­áâ ­âã (¤«ï ç¨á¥« á ¯à¨áâ ¢ª®© e+..)
312
	fmul qword [ebx] ;㬭®¦¨âì ­  ª®­áâ ­âã (¤«ï ç¨á¥« á ¯à¨áâ ¢ª®© e+..)
306
	jmp .NoDiv
313
	jmp .NoDiv
307
.NoMul:
314
.NoMul:
308
	neg ebx
315
	neg ebx
309
	lea ebx,[MConst+8*ebx]
316
	lea ebx,[MConst+8*ebx]
-
 
317
	cmp ebx,MConst.end
-
 
318
	jl @f
-
 
319
		ffree st0
-
 
320
		fincstp
-
 
321
		jmp .Error ;¥á«¨ ®ç¥­ì ¬ «¥­ìª®¥ ç¨á«® e-**
-
 
322
	@@:
310
	fdiv qword [ebx] ;à §¤¥«¨âì ­  ª®­áâ ­âã
323
	fdiv qword [ebx] ;à §¤¥«¨âì ­  ª®­áâ ­âã
311
.NoDiv: ;‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç­®¬ ä®à¬ â¥
324
.NoDiv: ;‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç­®¬ ä®à¬ â¥
312
	fstp [Data_Double]
325
	fstp [Data_Double]
313
.End:
326
.End:
314
	popad
327
	popad
Line 354... Line 367...
354
		add ebx,eax
367
		add ebx,eax
355
		lodsb
368
		lodsb
356
		jmp .cycle0
369
		jmp .cycle0
357
	.cycle0end:
370
	.cycle0end:
Line -... Line 371...
-
 
371
	
-
 
372
	cmp ebx,328 ;308 - ¬ ªá. à §¬¥à á⥯¥­¨ ¤«ï double + 20 - ç¨á«® à §à冷¢ ¢ BCD
358
	
373
	ja .Error
359
	cmp [Data_Sign_Exp],0
374
	cmp [Data_Sign_Exp],0
360
	je @f
375
	je @f
361
		neg ebx
376
		neg ebx
362
	@@:
377
	@@: