.sect .text; .sect .rom; .sect .data; .sect .bss
.sect .text
.define .sar2

.sar2:
				! bx, descriptor address
				! ax, index
	pop	cx
	pop	dx		! base address
	push	cx
	xchg	di,dx		! di = base address, dx is saved di
	sub     ax,(bx)
	mov     cx,4(bx)
	push	dx
	imul    cx
	pop	dx
	add     di,ax
	sar     cx,1
	jnb     1f
	pop	bx
	pop     ax
	stosb
	mov	di,dx
	jmp     bx
1:
	pop	bx
	mov	ax,si
	mov     si,sp
	rep movs
	mov     sp,si
	mov	si,ax
	mov	di,dx
	jmp     bx