попался мне на глаза пример вычисления корня на 8085. Я такого алгоритма не видел, поэтому решил написать на Z80. Вышло гладко, корни из 9 и 4 вычисляет, но на 5 затыкается. Поэтому алгоритм немного изменен:

Код:
	device zxspectrum128
        ORG #6000
begin
	ld de,$0101
	ld a,15*15;9-4
	sub d
	jr c,l2011
	inc d
	inc d
	inc e
	jr l2007
l2011:
	ld a,e
	jr $
end
	display /d,end-begin
	savesna "!void.sna",begin


Было бы интересно реализовать алгоритм для 16бит. Попытки написать алгоритм или адаптировать от 6502 провалились. Но похожие действия делаются так:

Код:
	device zxspectrum128
        ORG #6000
begin
	ld hl,$4000
	call sqrt
	jr $
sqrt:
   ld a,$ff
   ld de,1
sqrtloop:
   inc a
   dec e
   dec de
   add hl,de
   jr c,sqrtloop
   ret

end
	display /d,end-begin
	savesna "!void.sna",begin