;
                ; Programmodul 'MULTI' zur Multiplikation
                ; von zwei 16 Bit Zahlen
                ;
                ; IN	reg bc : Multiplikator
                ;	reg de : Multiplikand
                ;
                ; OUT	reg bc : Multiplikator (bleibt erhalten)
                ;	reg de : hoeherwertige 16 Bit des Produkts
                ;	reg hl : niederwertige
                ;
                ; REG	a,f,d,e,h,l
                ;
                
 0000		multi:
 0000 3E10  	   	ld	a,16		; Zaehler vorbelegen
 0002 210000 	  	ld	hl,0
                
 0005 29	mloop:	add	hl,hl		; <dehl> links schieben
 0006 CB13    	 	rl	e		;   hochwertiges Bit
 0008 CB12    	 	rl	d		;   ueberpruefen
 000A 3004    	 	jr	nc,nosum
                
 000C 09    	   	add	hl,bc		; aufaddieren
 000D 3001   	  	jr	nc,nosum
                
 000F 13     	  	inc	de		; Uebertrag in hochwertiges
                				;   Wort eintragen
 0010 3D	nosum:	dec	a
 0011 20F2     		jr	nz,mloop	; fuer jedes Bit in de
                				;   wiederholen
                
                	; Produkt in dehl
                
 0013 C9       		ret
                
                ;
                ; Programmodul 'DIVI' zur Division von
                ; zwei 16 Bit Zahlen
                ;
                ; IN	reg bc : Divisor
                ;	reg de : Dividend
                ;
                ; OUT	reg bc : Divisor (bleibt erhalten)
                ;	reg de : Rest der Division
                ;	reg hl : Quotient
                ;
                ; REG	a,f,d,e,h,l
                ;
                
 0014		divi:
 0014 AF      	 	xor	a		; Zaehler vorbelegen
 0015 67      	 	ld	h,a
 0016 6F      	 	ld	l,a
 0017 3E10    	 	ld	a,16
                
 0019 CB13	dloop:	rl	e		; <de> links schieben
 001B CB12     		rl	d
 001D ED6A     		adc	hl,hl		; <hl> links schieben
 001F ED42    	 	sbc	hl,bc		; Subtraktion
 0021 3001    	 	jr	nc,diffok
                
 0023 09      	 	add	hl,bc		; Sub. revidieren
 0024 3F	diffok:	ccf
                
 0025 3D      	 	dec	a
 0026 20F1   	  	jr	nz,dloop	; fuer jedes Bit in de
                				;   wiederholen
                
                	; Quotient in hl, Rest in de
                
 0028 C9     	  	ret
Bild 8. Die Programme für Multiplikation und Division
[Z80 source]