§ Описание
Здесь происходит вызов связанной процедуры mul16uНа вход подается указатель на строку HL, на выход получается целочисленный неотрицательный результат DE. Разбор происходит до последнего знака из набора 0..9
§ Программный код
1; ---------------------------------------------------------------------- 2; Конвертация HL строки [0-9]+ в [uint_16 DE] 3; HL будет находится после последнего разобранного символа 4; ---------------------------------------------------------------------- 5 6atoi: push af 7 push bc 8 ld de, $0000 9atoil: ld a, (hl) 10 inc hl 11 sub '0' 12 jr c, atoie 13 cp 10 14 jr nc, atoie ; 0 <= Acc <= 9 15 push hl 16 ld bc, 10 17 call mul16u ; DE *= 10 18 ex de, hl 19 ld b, 0 20 ld c, a 21 add hl, bc 22 ex de, hl ; DE = DE*10 + A 23 pop hl 24 jr atoil 25atoie: pop bc 26 pop af 27 ret