Лисья Нора
09:18
Главная
»
Спектрум
» Конвертация строки в uint16
Оглавление
Описание
Программный код
§
Описание
Здесь происходит вызов связанной процедуры умножения числа.
На вход подается указатель на строку 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