主题:求助高手们,是循环程序设计的一道题目
将一个包含有20个数据的数组M分成两个数组:正数组P和负数组N,并分别把这辆个数组中的数据及数据的个数显示出来.
下面是我自己编的,不过还出现错误的,
SSEG SEGMENT STACK
DW 20 DUP (?)
TOP LABEL WORD
SSEG ENDS
;
DSEG SEGMENT
;
M_AY DB 1,-2,36,35,0,-65,98,-30,15,65,32,15,16,-45,3,'$'
P_AY DB 20 DUP (?)
P_COUNT DW ?
N_AY DB 20 DUP (?)
N_COUNT DW ?
DSEG ENDS
;
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
MOV AX,SSEG
MOV SS,AX
MOV SP,OFFSET TOP
MOV AX,DSEG
MOV DS,AX
XOR BX,BX
XOR SI,SI
XOR DI,DI
NEXT:
MOV AL,M_AY[BX]
INC BX
CMP AL,'$'
JE FINISH
CMP AL,0
JGE P_PROCS
MOV N_AY[DI],AL
INC DI
JMP NEXT
P_PROCS:MOV P_AY[SI],AL
INC SI
JMP NEXT
FINISH:MOV P_COUNT,SI
MOV N_COUNT,DI
ADD SI,30H
ADD DI,30H
MOV DX,DI
MOV AH,2
INT 21H
MOV DX,SI
INT 21H
MOV DL,N_AY[SI]
MOV AH,2
INT 21H
MOV AX,4C00H
INT 21H
MOV DL,N_AY[SI]
MOV AH,2
INT 21H
START ENDP
CSEG ENDS
END START
希望各位高手能帮我的程序改正和补充,或者另编一个新的程序.可以发送到我的邮箱:
jiangjian11101@163.com
下面是我自己编的,不过还出现错误的,
SSEG SEGMENT STACK
DW 20 DUP (?)
TOP LABEL WORD
SSEG ENDS
;
DSEG SEGMENT
;
M_AY DB 1,-2,36,35,0,-65,98,-30,15,65,32,15,16,-45,3,'$'
P_AY DB 20 DUP (?)
P_COUNT DW ?
N_AY DB 20 DUP (?)
N_COUNT DW ?
DSEG ENDS
;
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
MOV AX,SSEG
MOV SS,AX
MOV SP,OFFSET TOP
MOV AX,DSEG
MOV DS,AX
XOR BX,BX
XOR SI,SI
XOR DI,DI
NEXT:
MOV AL,M_AY[BX]
INC BX
CMP AL,'$'
JE FINISH
CMP AL,0
JGE P_PROCS
MOV N_AY[DI],AL
INC DI
JMP NEXT
P_PROCS:MOV P_AY[SI],AL
INC SI
JMP NEXT
FINISH:MOV P_COUNT,SI
MOV N_COUNT,DI
ADD SI,30H
ADD DI,30H
MOV DX,DI
MOV AH,2
INT 21H
MOV DX,SI
INT 21H
MOV DL,N_AY[SI]
MOV AH,2
INT 21H
MOV AX,4C00H
INT 21H
MOV DL,N_AY[SI]
MOV AH,2
INT 21H
START ENDP
CSEG ENDS
END START
希望各位高手能帮我的程序改正和补充,或者另编一个新的程序.可以发送到我的邮箱:
jiangjian11101@163.com