汇编统计数组中正负数的个数

程序中还有不能实现的地方,如果数组中的0的话会将其算为一个正数,百思不得解,望能者指正之

DATAS SEGMENT
BUF DB 1,2,9,-2,-1,-4,3,-6,7,4
STR DB 13,10,' POSI: '
POSI DB ?
DB ' , NEGA: '
NEGA DB ?
DB '$'
DATAS ENDS
;---------------------
CODES SEGMENT
ASSUME DS:DATAS,CS:CODES
START:
MOV AX,DATAS
MOV DS,AX
LEA SI,BUF-1
XOR AL,AL
MOV POSI,AL
MOV NEGA,AL
XOR CX,CX
MOV CX,10
NEXT:
INC SI
CMP [SI],0
JZ OK
JS LOWER
JNS GREATER
LOOP NEXT
JMP OK
LOWER:
INC NEGA
LOOP NEXT
GREATER:
INC POSI
LOOP NEXT

OK:
MOV DX,OFFSET STR
ADD POSI,30H
ADD NEGA,30H
MOV AH,9H
INT 21H

MOV AH,4CH
INT 21H
CODES ENDS
END START


你可能感兴趣的:(Assembly,Language)