Metropoli BBS
VIEWER: subdemo.asm MODE: TEXT (ASCII)
%TITLE  "Subroutine demo"

	IDEAL
	DOSSEG
	MODEL	small
	STACK	256

	DATASEG

exitCode	DB	0	;if you want comments

	CODESEG

Start:
	mov	ax,@data
	mov	ds,ax

	mov	al,1
	mov	bl,2
	mov	cl,3
	mov	dl,4
	call	AddRegisters
	call	AddRegisters
	call	AddRegisters

Exit:
	mov	ah,04Ch
	mov	al,[exitCode]
	int 	21h

;---------------------------------------------------------
;  AddRegisters		Sum al,bl,cl, & dl
;---------------------------------------------------------
; Input:
;	al,bl,cl,dl = four 8-bit values to add
; Output:
;	ax = al + bl + cl + dl
; Registers:
;	ax,bh,ch,dh changed
;--------------------------------------------------------
PROC	AddRegisters
	xor	ah,ah
	xor	bh,bh
	xor	ch,ch
	xor	dh,dh
	add	ax,bx
	adc	ax,cx
	adc	ax,dx
	ret
ENDP	AddRegisters

	END	Start

[ RETURN TO DIRECTORY ]