189 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.486
 | 
						|
.model flat
 | 
						|
extrn __fltused:near
 | 
						|
extrn __ftol:near
 | 
						|
public _main
 | 
						|
_TEXT segment
 | 
						|
_main:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,24
 | 
						|
cmp dword ptr (20)[ebp],1
 | 
						|
jg L2
 | 
						|
fld dword ptr (L4)
 | 
						|
fstp dword ptr (-16)[ebp]
 | 
						|
jmp L3
 | 
						|
L2:
 | 
						|
mov edi,dword ptr (24)[ebp]
 | 
						|
mov edi,dword ptr (4)[edi]
 | 
						|
push edi
 | 
						|
call _atof
 | 
						|
add esp,4
 | 
						|
fstp dword ptr (-20)[ebp]
 | 
						|
fld dword ptr (-20)[ebp]
 | 
						|
fdiv dword ptr (L5)
 | 
						|
fstp dword ptr (-16)[ebp]
 | 
						|
L3:
 | 
						|
mov dword ptr (-4)[ebp],0
 | 
						|
L6:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea esi,(1)[edi]
 | 
						|
mov dword ptr (-4)[ebp],esi
 | 
						|
fld dword ptr (L4)
 | 
						|
fstp dword ptr (_f)[edi*4]
 | 
						|
L7:
 | 
						|
cmp dword ptr (-4)[ebp],127
 | 
						|
jle L6
 | 
						|
mov dword ptr (-8)[ebp],0
 | 
						|
jmp L11
 | 
						|
L10:
 | 
						|
mov edi,dword ptr (-12)[ebp]
 | 
						|
lea edi,(_f)[edi*4]
 | 
						|
fld dword ptr [edi]
 | 
						|
fadd dword ptr (L13)
 | 
						|
fstp dword ptr [edi]
 | 
						|
inc dword ptr (-8)[ebp]
 | 
						|
L11:
 | 
						|
call _getchar
 | 
						|
add esp,0
 | 
						|
mov dword ptr (-12)[ebp],eax
 | 
						|
cmp eax,-1
 | 
						|
jne L10
 | 
						|
lea edi,(L14)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,4
 | 
						|
mov dword ptr (-4)[ebp],0
 | 
						|
L15:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
fld dword ptr (_f)[edi*4]
 | 
						|
fstp dword ptr (-24)[ebp]
 | 
						|
fld dword ptr (L4)
 | 
						|
fcomp dword ptr (-24)[ebp]
 | 
						|
fstsw ax
 | 
						|
sahf
 | 
						|
jp L26
 | 
						|
je L19
 | 
						|
L26:
 | 
						|
fld dword ptr (-24)[ebp]
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
push edi
 | 
						|
fild dword ptr 0[esp]
 | 
						|
add esp,4
 | 
						|
fdivp st(1),st
 | 
						|
fld dword ptr (-16)[ebp]
 | 
						|
fcompp
 | 
						|
fstsw ax
 | 
						|
sahf
 | 
						|
jp L19
 | 
						|
ja L19
 | 
						|
cmp dword ptr (-4)[ebp],32
 | 
						|
jg L21
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
push edi
 | 
						|
lea edi,(L23)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
jmp L22
 | 
						|
L21:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
push edi
 | 
						|
lea edi,(L24)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
L22:
 | 
						|
fld dword ptr (L5)
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
fmul dword ptr (_f)[edi*4]
 | 
						|
mov edi,dword ptr (-8)[ebp]
 | 
						|
push edi
 | 
						|
fild dword ptr 0[esp]
 | 
						|
add esp,4
 | 
						|
fdivp st(1),st
 | 
						|
sub esp,8
 | 
						|
fstp qword ptr [esp]
 | 
						|
lea edi,(L25)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,12
 | 
						|
L19:
 | 
						|
L16:
 | 
						|
inc dword ptr (-4)[ebp]
 | 
						|
cmp dword ptr (-4)[ebp],127
 | 
						|
jle L15
 | 
						|
mov eax,0
 | 
						|
L1:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
_TEXT ends
 | 
						|
extrn _printf:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
extrn _getchar:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
extrn _atof:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
_DATA segment
 | 
						|
public _f
 | 
						|
align 4
 | 
						|
_f label byte
 | 
						|
db 512 dup (0)
 | 
						|
_DATA ends
 | 
						|
_TEXT segment
 | 
						|
align 1
 | 
						|
L25 label byte
 | 
						|
db 9
 | 
						|
db 37
 | 
						|
db 46
 | 
						|
db 49
 | 
						|
db 102
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L24 label byte
 | 
						|
db 37
 | 
						|
db 99
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L23 label byte
 | 
						|
db 37
 | 
						|
db 48
 | 
						|
db 51
 | 
						|
db 111
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L14 label byte
 | 
						|
db 99
 | 
						|
db 104
 | 
						|
db 97
 | 
						|
db 114
 | 
						|
db 9
 | 
						|
db 102
 | 
						|
db 114
 | 
						|
db 101
 | 
						|
db 113
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
align 4
 | 
						|
L13 label byte
 | 
						|
dd 03f800000H
 | 
						|
align 4
 | 
						|
L5 label byte
 | 
						|
dd 042c80000H
 | 
						|
align 4
 | 
						|
L4 label byte
 | 
						|
dd 00H
 | 
						|
_TEXT ends
 | 
						|
end
 |