Z80 – Quadratwurzel aus 16-Bit-Zahl
Die hier vorgestellte kleine Routine errechnet die Integer-Quadratwurzel aus einer im Register HL gegebenen 16-Bit-Zahl. Das Ergebnis wird im Register DE gespeichert.
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13  | 
						; +++++++++++ ZUSATZ: CPC 7'87 ; DE=INT(SQR(HL)) ; Integer-Quadratwurzeln - voller Bereich sqr1:	ld	de,0 	ld	bc,-1 sqrlp1:	and	a 	add	hl,bc	; BC<0 	ret	nc	; HL<=0 	inc	de 	dec	bc 	dec	bc 	jr	sqrlp1  | 
					
Und hier noch eine Variante, bei der das Ergebnis im Register A landet. Das Register HL nimmt wieder die Zahl auf, aus der die Quadratwurzel ermittelt werden soll.
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14  | 
						; A=INT(SQR(HL)) ; Integer-Quadratwurzeln ; AKKU Max ist 255 -> Max Zahl 65025 sqr:	xor	a 	ld	bc,-1 sqrlp:	add	hl,bc	; BC<0 	ret	nc	; HL<=0 	inc	a 	dec	bc 	dec	bc 	jr	sqrlp 	end  |