если заставлять её делить 32бита просто на 2 (или подобные значения), то выдаёт мусор.
Если заставлять делить 32 бита на 2 или 3 или на много что еще с получением результата не помещающегося в 16 бит, то нужно использовать другую процедуру. А в той процедуре написано: BC = HLBC/DE, HL = HLBC%DE и она работоспособна в данных пределах.