DATA    SEGMENT
        ORITAB  DB 33,22,11,-12,42,81,-17,54,-70,3
    ODD    DB 10 DUP(?)
                DB      '$'
    EVE    DB 10 DUP(?)
                DB      '$'
        SUM_ODD DW      ?
        SUM_EVE DW      ?
DATA    ENDS
STACK    SEGMENT    PARA    STACK'STACK'
STACK    ENDS
CODE    SEGMENT
    START    PROC    FAR
    ASSUME    CS:CODE,DS:DATA,ES:DATA,SS:STACK
    PUSH    DS
    MOV    AX,0
    PUSH    AX
    MOV    AX,DATA
    MOV    DS,AX
    XOR    DX,DX
        MOV     BX,0
        MOV     SUM_ODD,BX
        MOV     SUM_EVE,BX
    MOV    DI,OFFSET ODD
    MOV    SI,OFFSET EVE
    MOV    BP,OFFSET ORITAB
    MOV    CX,10


LOP:    MOV    AL,[BP]
        CMP     AL,0
        JL      EVEP
        JG      ODDP
        JMP     NEXT


ODDP:    MOV    [DI],AL
    INC    DI
        MOV     DL,AL
        MOV     BX,0
        MOV     BX,SUM_ODD
        ADD     BX,DX
        MOV     SUM_ODD,BX
    JMP    NEXT


EVEP:    MOV    [SI],AL
    INC    SI
        MOV     DL,AL
        MOV     BX,0
        MOV     BX,SUM_EVE
        ADD     BX,DX
        MOV     SUM_EVE,BX
        JMP     NEXT


NEXT:    INC    BP
    LOOP    LOP
        MOV     DX,SUM_ODD
        MOV     [DI],DL
        INC     DI
        MOV     [DI],DH
        MOV     DX,0
        MOV     DX,SUM_EVE
        MOV     [SI],DL
        INC     SI
        MOV     [SI],DH
    RET
    START    ENDP
CODE    ENDS
        END    START