            .386p
_CODE       segment use16
            assume cs:_CODE, ds:_DATA, ss:_STACK
_CODE       ends
_DATA       segment use16

_I          DB   20 DUP(?)
_A          DB   2 DUP(?)
_B          DB   2 DUP(?)

            PUBLIC _I,_A,_B,
_DATA	    ends

_CODE       segment use16
            assume  cs:_CODE,ds:_DATA,ss:_STACK

_TEST2      PROC FAR
            LEA  SI,_I
            ADD  SI,3
            ADD  SI,3
            MOV  AX,Word Ptr [_B]
            ADD  AX,Word Ptr [_A]
            MOV  BX,Word Ptr [_B]
            SUB  BX,Word Ptr [_A]
            MOV  CX,AX
            IMUL BX
            MOV  Word Ptr [SI],CX
            RET
_TEST2      ENDP
start:
            MOV AX, SEG _DATA
            MOV DS,AX
            CALL _TEST2
            MOV AX,4C00h
            INT 21h
_CODE	      ends
_STACK      segment para stack
            db 800 dup (?)
_STACK      ends
     	      end   start
