Rev 2254 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2254 | Rev 7128 | ||
---|---|---|---|
Line 57... | Line 57... | ||
57 | ;* NumberSymbolsAD - ª®«¨ç¥á⢮ § ª®¢ ¯®á«¥ * |
57 | ;* NumberSymbolsAD - ª®«¨ç¥á⢮ § ª®¢ ¯®á«¥ * |
58 | ;* § ¯ï⮩ (0-17). * |
58 | ;* § ¯ï⮩ (0-17). * |
59 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
59 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
60 | ;* Data_String - áâப -१ã«ìâ â. * |
60 | ;* Data_String - áâப -१ã«ìâ â. * |
61 | ;******************************************************* |
61 | ;******************************************************* |
- | 62 | align 4 |
|
62 | DoubleFloat_to_String: |
63 | DoubleFloat_to_String: |
63 | pushad |
64 | pushad |
64 | ; ¥§ã«ìâ â § ¯¨áë¢ âì ¢ áâபã Data_String |
65 | ; ¥§ã«ìâ â § ¯¨áë¢ âì ¢ áâபã Data_String |
65 | mov EDI, Data_String |
66 | mov EDI, Data_String |
Line 148... | Line 149... | ||
148 | inc ESI |
149 | inc ESI |
149 | loop .N3 |
150 | loop .N3 |
150 | ; 訡ª - ¥â § ç é¨å æ¨äà |
151 | ; 訡ª - ¥â § ç é¨å æ¨äà |
151 | jmp .Error |
152 | jmp .Error |
152 | ; ª®¯¨à®¢ âì § ç éãî ç áâì ç¨á« ¢ ç «® áâப¨ |
153 | ; ª®¯¨à®¢ âì § ç éãî ç áâì ç¨á« ¢ ç «® áâப¨ |
- | 154 | align 4 |
|
153 | .N4: rep movsb |
155 | .N4: rep movsb |
154 | jmp .End |
156 | jmp .End |
155 | - | ||
156 | ; 訡ª |
157 | ; 訡ª |
- | 158 | align 4 |
|
157 | .Error: |
159 | .Error: |
158 | mov AL,'E' |
160 | mov AL,'E' |
159 | stosb |
161 | stosb |
160 | mov AL,'R' |
162 | mov AL,'R' |
161 | stosb |
163 | stosb |
Line 163... | Line 165... | ||
163 | stosb |
165 | stosb |
164 | xor AL,AL |
166 | xor AL,AL |
165 | stosb |
167 | stosb |
166 | jmp .End |
168 | jmp .End |
167 | ; ¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
169 | ; ¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
- | 170 | align 4 |
|
168 | .Overflow: |
171 | .Overflow: |
169 | mov AL,'#' |
172 | mov AL,'#' |
170 | stosb |
173 | stosb |
171 | xor AL,AL |
174 | xor AL,AL |
172 | stosb |
175 | stosb |
173 | ; ®¥æ ¯à®æ¥¤ãàë |
176 | ; ®¥æ ¯à®æ¥¤ãàë |
- | 177 | align 4 |
|
174 | .End: |
178 | .End: |
175 | popad |
179 | popad |
176 | ret |
180 | ret |
Line 177... | Line 181... | ||
177 | 181 | ||
Line 181... | Line 185... | ||
181 | ;* å®¤ë¥ ¯ à ¬¥âàë: * |
185 | ;* å®¤ë¥ ¯ à ¬¥âàë: * |
182 | ;* Data_String - ç¨á«® ¢ ª®¤¥ ASCII. * |
186 | ;* Data_String - ç¨á«® ¢ ª®¤¥ ASCII. * |
183 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
187 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
184 | ;* Data_Double - ç¨á«® ¢ ¤¢®¨ç®¬ ª®¤¥. * |
188 | ;* Data_Double - ç¨á«® ¢ ¤¢®¨ç®¬ ª®¤¥. * |
185 | ;**************************************************** |
189 | ;**************************************************** |
- | 190 | align 4 |
|
186 | String_to_DoubleFloat: |
191 | String_to_DoubleFloat: |
187 | pushad |
192 | pushad |
188 | cld |
193 | cld |
189 | ; ç¨é ¥¬ Data_BCD |
194 | ; ç¨é ¥¬ Data_BCD |
190 | mov dword [Data_BCD],0 |
195 | mov dword [Data_BCD],0 |
Line 200... | Line 205... | ||
200 | lodsb |
205 | lodsb |
201 | cmp AL,' ' |
206 | cmp AL,' ' |
202 | jne .ShiftIgnoreEnd |
207 | jne .ShiftIgnoreEnd |
203 | loop .ShiftIgnore |
208 | loop .ShiftIgnore |
204 | jmp .Error |
209 | jmp .Error |
- | 210 | align 4 |
|
205 | .ShiftIgnoreEnd: |
211 | .ShiftIgnoreEnd: |
206 | ; ஢¥à塞 § ª ç¨á« |
212 | ; ஢¥à塞 § ª ç¨á« |
207 | cmp AL,'-' |
213 | cmp AL,'-' |
208 | jne .Positive |
214 | jne .Positive |
209 | mov [Data_Sign],80h |
215 | mov [Data_Sign],80h |
Line 220... | Line 226... | ||
220 | mov [Data_Flag],1 |
226 | mov [Data_Flag],1 |
221 | lodsb |
227 | lodsb |
222 | cmp AL,0 ;ª®¥æ áâப¨? |
228 | cmp AL,0 ;ª®¥æ áâப¨? |
223 | jne .NotDot |
229 | jne .NotDot |
224 | jmp .ASCIItoBCDConversionEnd |
230 | jmp .ASCIItoBCDConversionEnd |
- | 231 | align 4 |
|
225 | .NotDot: |
232 | .NotDot: |
226 | ; ¢¥«¨ç¨âì 1 § 票¥ ¯®§¨æ¨¨ â®çª¨, |
233 | ; ¢¥«¨ç¨âì 1 § 票¥ ¯®§¨æ¨¨ â®çª¨, |
227 | ; ¥á«¨ ® ¥é¥ ¥ ¢áâà¥ç « áì |
234 | ; ¥á«¨ ® ¥é¥ ¥ ¢áâà¥ç « áì |
228 | cmp [Data_Flag],0 |
235 | cmp [Data_Flag],0 |
229 | jnz .Figures |
236 | jnz .Figures |
Line 282... | Line 289... | ||
282 | add EBX, MConst |
289 | add EBX, MConst |
283 | fdiv qword [EBX] ;à §¤¥«¨âì ª®áâ âã |
290 | fdiv qword [EBX] ;à §¤¥«¨âì ª®áâ âã |
284 | .NoDiv:; ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç®¬ ä®à¬ ⥠|
291 | .NoDiv:; ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç®¬ ä®à¬ ⥠|
285 | fstp [Data_Double] |
292 | fstp [Data_Double] |
286 | jmp .End |
293 | jmp .End |
287 | 294 | align 4 |
|
288 | .Error:; ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â |
295 | .Error:; ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â |
289 | fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à |
296 | fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à |
290 | fstp [Data_Double] |
297 | fstp [Data_Double] |
291 | .End: |
298 | .End: |
292 | popad |
299 | popad |
293 | ret |
300 | ret |
Line 294... | Line 301... | ||
294 | 301 | ||
295 | align 4 |
302 | align 4 |
296 | proc str_cat, str1:dword, str2:dword |
- | |
297 | push eax ecx edi esi |
303 | proc str_cat uses eax ecx edi esi, str1:dword, str2:dword |
298 | mov esi,dword[str2] |
304 | mov esi,dword[str2] |
299 | stdcall str_len,esi |
305 | stdcall str_len,esi |
300 | mov ecx,eax |
306 | mov ecx,eax |
301 | inc ecx |
307 | inc ecx |
302 | mov edi,dword[str1] |
308 | mov edi,dword[str1] |
303 | stdcall str_len,edi |
309 | stdcall str_len,edi |
304 | add edi,eax |
310 | add edi,eax |
305 | cld |
311 | cld |
306 | repne movsb |
- | |
307 | pop esi edi ecx eax |
312 | repne movsb |
308 | ret |
313 | ret |
Line 309... | Line 314... | ||
309 | endp |
314 | endp |
310 | 315 | ||
Line 320... | Line 325... | ||
320 | jmp @b |
325 | jmp @b |
321 | @@: |
326 | @@: |
322 | sub eax,[str1] |
327 | sub eax,[str1] |
323 | ret |
328 | ret |
324 | endp |
329 | endp |
325 | 330 | ||
- | 331 | align 4 |
|
- | 332 | proc String_crop_0 uses eax ebx ecx edi |
|
- | 333 | mov edi,Data_String |
|
- | 334 | mov al,'.' |
|
- | 335 | mov ecx,32 |
|
- | 336 | repne scasb |
|
- | 337 | mov ebx,edi |
|
- | 338 | mov edi,Data_String |
|
- | 339 | xor al,al |
|
- | 340 | mov ecx,32 |
|
- | 341 | repne scasb |
|
- | 342 | cmp ebx,edi |
|
- | 343 | jg .end_f |
|
- | 344 | dec edi |
|
- | 345 | .cycle0: |
|
- | 346 | dec edi |
|
- | 347 | cmp edi,Data_String |
|
- | 348 | jle .end_f |
|
- | 349 | cmp byte[edi],'0' |
|
- | 350 | jne .cycle0end |
|
- | 351 | mov byte[edi],0 |
|
- | 352 | jmp .cycle0 |
|
- | 353 | .cycle0end: |
|
- | 354 | cmp byte[edi],'.' |
|
- | 355 | jne .end_f |
|
- | 356 | mov byte[edi],0 |
|
- | 357 | .end_f: |
|
- | 358 | ret |
|
- | 359 | endp |
|
- | 360 | ||
326 | 361 |