Assembler: Counts the number of positive and negative numbers in an array

Assembler: Counts the number of positive and negative numbers in an array

Count the number of positive,0 and negative numbers in DA_WORD data area. The data definition is as follows:
DA_WORD DW -1,3,5,0,5,-7,4,0,8...
COUNT EQU $-DA_WORD
NUM DB 0; number of positive numbers stored
DB0; number of places 0
DB0; Number of negative numbers
DATAS SEGMENT
ORG 1000H
DA_ WORD DW 0FFFFH,3,5,0,0FFFBH,0FFF9H,4,0,0FFF8H
DOUNT EQU $-DA_WORD
ORG 1020H
NUM DB 0; number of positive numbers stored
ZEDB0; number of places 0
PLUS DB0
DATAS ENDS
STACKS SEGMENT
DW 100 DUP (0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS, AX
MOV AX,DOUNT
MOV CL,1
SHR AX, CL
MOV CX, AX
MOV SI,OFFSET DA _WORD
AG: MOV AX,[ SI]
CMP AX,0
JNZ NOZ
INC [ZE]
JMP NEXT
NOZ:TEST AX,8000H
JNZ ISPLUS
INC [NUM]
JMP NEXT
ISPLUS:
INC [PLUS]
NEXT:
ADD SI,2
LOOP AG
INT3
MOV AH,4CH
INT 21H
CODES ENDS
END START

The third power of 101* the third power of 100=?

101³×100³
=(100+1)³×100³
=(100³+3×100²+3×100+1³)100³
=100∧6+3X100∧5+3×100∧4+100 3
=1000000000000+30000000000+300000000+1000000
=1030301000000