Лисья Нора

Оглавление


§ Описание

Здесь происходит вызов связанной процедуры умножения числа.
На вход подается указатель на строку HL, на выход получается целочисленный неотрицательный результат DE. Разбор происходит до последнего знака из набора 0..9

§ Программный код

; ----------------------------------------------------------------------
; Конвертация HL строки [0-9]+ в [uint_16 DE]
; HL будет находится после последнего разобранного символа
; ----------------------------------------------------------------------
 
atoi: push af
push bc
ld de, $0000
atoil: ld a, (hl)
inc hl
sub '0'
jr c, atoie
cp 10
jr nc, atoie ; 0 <= Acc <= 9
push hl
ld bc, 10
call mul16u ; DE *= 10
ex de, hl
ld b, 0
ld c, a
add hl, bc
ex de, hl ; DE = DE*10 + A
pop hl
jr atoil
atoie: pop bc
pop af
ret