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

Obsah / Utility / CHARSET / CharUTF32BER

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


CharUTF32BER - Načtení znaku z bufferu ve formátu UTF-32BE

Funkce CharUTF32BER načte znak z bufferu ve formátu UTF-32BE, big endian (tj. formát Macintosh, v paměti je uložen nejdříve vyšší bajt dat a poté nižší bajt).


; -----------------------------------------------------------------------------
;               Read character from UTF-32BE (MAC, big endian) buffer
; -----------------------------------------------------------------------------
; INPUT:	ECX = remaining bytes
;		EDX = invalid character (in Unicode, 0 = default character)
;		ESI = source buffer
; OUTPUT:	EAX = Unicode character (or invalid character if no data)
;		ECX = next remaining bytes
;		ESI = next source buffer
; -----------------------------------------------------------------------------

CharUTF32BER:	sub	ecx,byte 4	; decrease number of bytes
		jc	CharUTF32LER8	; no data
		lodsd			; EAX <- load data
		xchg	al,ah		; exchange AH and AL
		rol	eax,16		; rotate bits
		xchg	al,ah		; exchange AH and AL
		or	eax,eax		; is character valid?
		js	CharUTF32LER9	; character is not valid
		ret

Funkce je téměř shodná s funkcí CharUTF32LER s tím rozdílem, že je zaměněno pořadí bajtů načítaných dvojslov.


Obsah / Utility / CHARSET / CharUTF32BER