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

Obsah / Utility / TEXT / TextGetByte

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


TextGetByte - Načtení bajtu z textu

Funkce TextGetByte načte z textu bajt z daného ukazatele pozice.


; -----------------------------------------------------------------------------
;                            Get byte from text
; -----------------------------------------------------------------------------
; INPUT:	EBX = pointer to TEXT
;		EDX = byte offset (it may be out of range)
; OUTPUT:	AL = byte from the text
;		CY = error, position is out of range
; -----------------------------------------------------------------------------

TextGetByte:	push	ecx		; push ECX
		mov	ecx,[ebx]	; ECX <- pointer to TEXTDATA
		cmp	edx,[ecx+TEXT_Length] ; check byte offset
		jae	TextGetByte2	; invalid byte offset
		mov	al,[ecx+TEXT_Text+edx] ; AL <- byte
TextGetByte2:	cmc			; CY = invalid byte offset
		pop	ecx		; pop ECX
		ret

Na vstupu funkce obsahuje registr EBX ukazatel na textovou proměnnou a registr EDX pozici (offset) v textu, pozice může být mimo platný rozsah. Funkce navrátí v registru AL bajt z dané pozice. Pokud pozice leží mimo platný rozsah, navrátí funkce nastavený příznak chyby CY.

Funkce načte do registru ECX z textové proměnné ukazatel na data textového řetězce. Porovnáním ukazatele pozice s délkou textu ověří platnost ukazatele pozice. Pokud je ukazatel pozice platný, načte z dané pozice bajt z textu, jinak se navrátí chybový příznak CY.


Obsah / Utility / TEXT / TextGetByte