Obsah / Utility / TEXT / CharDecToBin
Zdrojový kód:
INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
CharDecToBin -
Konverze ASCII dekadického znaku na číslo
Funkce CharDecToBin
zkonvertuje ASCII dekadický znak (tj. znaky "0" až
"9") na číslo 0 až 9.
; -----------------------------------------------------------------------------
; Convert ASCII decimal character to a number
; -----------------------------------------------------------------------------
; INPUT: AL = ASCII decimal character ("0" to "9")
; OUTPUT: AL = number 0 to 9 (if NC) or AL not changed (if CY)
; CY = invalid decimal character (AL not changed)
; -----------------------------------------------------------------------------
|
Na vstupu funkce obsahuje registr AL znak
ke konverzi. Jedná-li se o platný dekadický znak (tj. znaky
"0" až "9"), navrátí se v registru AL
hodnota 0 až 9 s příznak CF vynulovaným. Pokud byl zadán
neplatný dekadický znak, navrátí se příznak chyby CY a
obsah registru AL zůstane nezměněn.
; ------------- Check digit
CharDecToBin: cmp al,"0" ; check number MIN
jb CharDecToBin9 ; invalid character
cmp al,"9" ; check number MAX
ja CharDecToBin8 ; invalid character
; ------------- Convert ASCII digit to BIN (it clears CF)
sub al,"0" ; convert ASCII to BIN
ret ; here is NC
; ------------- Invalid HEX character
CharDecToBin8: stc ; set error flag
CharDecToBin9: ret
|
Funkce testuje znak v registru AL. Pokud
jde o platný dekadický znak, převede se na číslo a navrátí
se příznak NC. Není-li znakem platný dekadický znak,
zůstane obsah registru AL nezměněn a je navrácen příznak
chyby CY.
Obsah / Utility / TEXT / CharDecToBin