Главная »
Z80 » div16u: Процедура целочисленного деления
§ Краткое описание
Эта процедура достаточно универсальна и позволяет без проблем делить целочисленные 16 битные значения с остатком.
§ Программный код
Делимое DE, делитель BC; DE - ответ, HL - остаток.
1
2
3
4div16u: push af
5 push de
6 exx
7 pop hl
8 exx
9 ld hl, $0000
10 ld d, h
11 ld e, l
12 ld a, 16
13div16ul: push af
14 exx
15 add hl, hl
16 exx
17 adc hl, hl
18 sla e
19 rl d
20 inc e
21 xor a
22 sbc hl, bc
23 jr nc, div16us
24 add hl, bc
25 dec e
26div16us: pop af
27 dec a
28 jr nz, div16ul
29 pop af
30 ret