§ Краткое описание
Эта процедура достаточно универсальна и позволяет без проблем делить целочисленные 16 битные значения с остатком.§ Программный код
Делимое DE, делитель BC; DE - ответ, HL - остаток.; Вход: DE - что делить, BC - на что делить ; Выход: DE - ответ, HL - остаток div16u: push af push de exx pop hl exx ld hl, $0000 ld d, h ld e, l ld a, 16 div16ul: push af exx add hl, hl exx adc hl, hl sla e ; Сдвиг DE (результата) rl d inc e ; Выставить 1 по умолчанию xor a ; CF = 0 sbc hl, bc ; HL = HL - BC jr nc, div16us ; HL < BC ? Если нет, пропуск add hl, bc ; Восстановить HL dec e ; Убрать 1 -> 0 div16us: pop af dec a jr nz, div16ul pop af ret
25 авг, 2020
© 2007-2023 Жесть в том, что Малахов взлетает кроссом