Metropoli BBS
VIEWER: lst9-17.asm MODE: TEXT (ASCII)
;
; *** Listing 9-17 ***
;
; Supports the use of CX to store a loop count and CL
; to store a shift count by pushing and popping the loop
; count around the use of the shift count.
;
	jmp	Skip
;
ARRAY_LENGTH	equ	1000
Array1	db	ARRAY_LENGTH dup (3)
Array2	db	ARRAY_LENGTH dup (2)
;
Skip:
	mov	si,offset Array1 ;point to the source array
	mov	di,offset Array2 ;point to the dest array
	mov	ax,ds
	mov	es,ax		;copy to & from same segment
	mov	cx,ARRAY_LENGTH	;the loop count
	mov	dl,2		;the shift count
	call	ZTimerOn
ProcessingLoop:
	lodsb			;get the next byte
	push	cx		;save the loop count
	mov	cl,dl		;get the shift count into CL
	shl	al,cl		;shift the byte
	pop	cx		;get back the loop count
	stosb			;save the modified byte
	loop	ProcessingLoop
	call	ZTimerOff

[ RETURN TO DIRECTORY ]