Итерации по Ньютону. Может, кому пригодится
Использует подпрограмму деления Д32А из книжки Гуртовцева и ГудыменкоКод:;----------------------------------------------------------------------- ; HL = SQRT(HL) ;----------------------------------------------------------------------- sqrt: ;----------------------------------------------------------------------- mov a,h ana l inr a jz .FFFF ;----------------------------------------------------------------------- xchg .loop: mov b,h mov c,l push d push b lxi h,0 call gg_d32a pop h push h dad d mov a,h rar mov h,a mov a,l rar mov l,a ;----------------------------------------------------------------------- pop b pop d mov a,b cmp h jnz .loop mov a,l cmp c jnz .loop ;----------------------------------------------------------------------- ret ;----------------------------------------------------------------------- .FFFF: mov h,a ret ;-----------------------------------------------------------------------
Скрытый текст
Код:;----------------------------------------------------------------------- ; HLDE / BC = DE (HL) ; CY=0 -> result overflow ;----------------------------------------------------------------------- proc gg_d32a ; Д32А ;----------------------------------------------------------------------- mov a,l sub c mov a,h sbb b rnc call negb xra a .loop: dad h rar xchg dad h xchg jnc .m1 inx h .m1: push h dad b jnc .m2 ral .m3: inx d inx sp inx sp adi 16 jnc .loop ; stc ret .m2: ral jc .m3 pop h adi 16 jnc .loop ; stc ret ;----------------------------------------------------------------------- endp ;----------------------------------------------------------------------- proc negb mov a,b cma mov b,a mov a,c cma mov c,a inx b ret endp ;-----------------------------------------------------------------------[свернуть]





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
