Tvůrce webu je i pro tebe! Postav třeba web. Bez grafika. Bez kodéra. Hned.
wz

Obsah / Utility / TEXT / TextAddFormatF

Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM


TextAddFormatF - Přidání formátovaného textu na konec textu s float argumentem

Funkce TextAddFormatF přidá formátovaný text na konec textu s jedním float argumentem. Funkce použije implicitní popisovač národnostních informací.


; -----------------------------------------------------------------------------
;  Add formated text to end of text with float argument and default nationality
; -----------------------------------------------------------------------------
; INPUT:	EAX = pointer to source TEXT variable
;		EBX = pointer to destination TEXT variable
;		ST0 = float argument (number will be removed from FPU stack)
; OUTPUT:	CY = memory error or invalid argument index (text not changed)
; NOTES:	It uses double float size of argument (neither H nor L size).
; -----------------------------------------------------------------------------

; ------------- Push registers

TextAddFormatF:	push	ecx		; push ECX
		push	edx		; push EDX
		push	esi		; push ESI

; ------------- Store number into stack

		push	ecx		; reserve 1 DWORD
		push	ecx		; reserve 1 DWORD
		mov	edx,esp		; EDX <- pointer to stack
		fstp	qword [edx]	; store number into stack

; ------------- Format text

		xor	ecx,ecx		; ECX <- 0
		mov	cl,2		; ECX <- 2, number of DWORD arguments		
		xor	esi,esi		; ESI <- 0, default nationality
		call	TextAddFormat	; format text

; ------------- Destroys local buffer

		pop	ecx		; destroy 1 DWORD
		pop	ecx		; destroy 1 DWORD

; ------------- Pop registers

		pop	esi		; pop ESI
		pop	edx		; pop EDX
		pop	ecx		; pop ECX
		ret

Na vstupu funkce obsahuje registr EAX ukazatel na textovou proměnnou obsahující formátovací řetězec. Formátovací řetězec musí obsahovat maximálně jeden argument - desetinné číslo. Registr EBX obsahuje ukazatel na cílovou proměnnou, do které se zformátovaný text uloží. Registr ST0 obsahuje argument - desetinné číslo. Funkce číslo uvolní ze zásobníku koprocesoru. V případě chyby paměti, nebo pokud je ve formátovacím řetězci použit neplatný index argumentu, je navrácen chybový příznak CY a obsah cílové textové proměnné se nezmění.

Funkce vnitřně volá funkci TextAddFormat, které předá ukazatel na argument uložený v zásobníku. Pro ten účel vytvoří v zásobníku prostor pro argument o velikosti 2 dvojslov a uloží tam obsah registru ST0. Do registru ECX uloží hodnotu 2 jako velikost argumentu v zásobníku. Registr ESI vynuluje jako příznak použití implicitního popisovače národnostních informací.


Obsah / Utility / TEXT / TextAddFormatF