STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
STACK ENDS
DATA SEGMENT
BUF DW 10
DW 2310,-43,31,-321,-1234,345,0,3213,0,5477
POSITIVE DW 0
NEGATIVE DW 0
ZERO DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA BX,BUF
INC BX
INC BX
MOV CL,10
MOV DH,0
MOV DL,0
MOV CH,0
PP1:MOV AX,[BX]
CMP AX,0
JGE PP2
ADD DH,1
JMP AGAIN
PP2:CMP AX,0
JG PP3
ADD DL,1
JMP AGAIN
PP3:ADD CH,1
AGAIN :INC BX
INC BX
LOOP PP1
AND DH,0FH
ADD DH,30H
MOV AH,0
MOV AL,DH
MOV NEGATIVE ,AX
AND DL,0FH
ADD DL,30H
MOV AH,0
MOV AL,DL
MOV ZERO ,AX
AND CH,0FH
ADD CH,30H
MOV AH,0
MOV AL,CH
MOV POSITIVE ,AX
MOV DX,NEGATIVE
MOV AH,9
INT 21H
MOV DL,' ';空格
MOV AH,9
INT T21H
MOV DX,ZERO
MOV AH,9
INT 21H
MOV DL,' ';空格
MOV AH,9
INT 21H
MOV DX,POSITIVE
MOV AH,9
INT 21H
RET
MAIN ENDP
CODE ENDS
END