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

Obsah / Utility / TEXT / TextAttach

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


TextAttach - Připojení dat textového řetězce k proměnné textového řetězce

Funkce TextAttach připojí data textového řetězce k proměnné textového řetězce.


; -----------------------------------------------------------------------------
;                     Attach text string data to text string
; -----------------------------------------------------------------------------
; INPUT:	EAX = pointer to TEXTDATA
;		EBX = pointer to TEXT
; NOTES:	It must be paired with TextDetach.
; -----------------------------------------------------------------------------

Na vstupu funkce obsahuje registr EAX ukazatel na data textového řetězce TEXTDATA a registr EBX obsahuje ukazatel na textovou proměnnou TEXT. Funkce pro připojení a odpojení dat (TextAttach a TextDetach) musí být spárovány, tj. počet připojení musí odpovídat počtu odpojení.


TextAttach:	mov	[ebx],eax	; save pointer to TEXTDATA
		cmp	byte [eax+TEXT_Ref+3],CTEXTREFHIGH ; read-only?
		je	TextAttach2	; text string is read only
		LOCKSMP			; CPU instruction lock
		inc	dword [eax+TEXT_Ref] ; increase reference counter
TextAttach2:	ret

Funkce uloží do textové proměnné (na adrese EBX) ukazatel na data textového řetězce (obsažený v EAX). Kontrolou referenčního čítače se rozliší, zda jsou data textového řetězce konstantní. Pokud se jedná o konstantní text, referenční čítač nebude měněn a funkce se ukončí. Nejedná-li se o konstantní text, inkrementuje se referenční čítač dat textového řetězce. Inkrementace se provede s uzamknutím sběrnice procesoru instrukcí LOCK, čímž je ošetřena možnost souběhu více procesorů.


Obsah / Utility / TEXT / TextAttach