div16u
Здесь происходит вызов связанной процедуры деления 1; ---------------------------------------------------------------------- 2; Пропечатка в буфер integer 16 битного 3; Вход: DE-входящие данные 4; Выход: DE-указатель на полученную строку 5; ---------------------------------------------------------------------- 6 7; Переменные 8itoa_dt: defb 6,5,5,3,5,0 9 10; Процедура 11itoa: push bc 12 push hl 13 ld hl, itoa_dt+4 ; Последний символ 14 ld bc, 10 15itoal: push hl 16 call div16u ; L=DE mod 10 (Разделить число на 10) 17 ld a, l ; Записать остаток в A 18 add a, '0' 19 pop hl 20 ld (hl), a ; Запись числа 0..9 ASCII 21 dec hl 22 ld a, d 23 or e 24 jr nz, itoal ; Повторять пока не будет 0 25 inc hl ; Восстановить указатель 26 ex de, hl ; Поместить HL -> DE 27 pop hl 28 pop bc 29 ret