§ Описание
Здесь происходит вызов связанной процедуры mul16uНа вход подается указатель на строку 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