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