试编写一个程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在显示终端上显示如下信息: (1)如果三个数都不相等则显示0; (2)如果三个数有两个
DSEG SEGMENTARRAY DW 6 DUP(?)
DSEG ENDS
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG,DS:DSEG
PUSH DS
SUB AX,AX ;AX清零
PUSH AX ;把AX入栈
MOV AX,DSEG ;把输入的数值存进AX中
MOV DS,AX ;把存进AX中的数值存进DS进行保护,给DS赋值
BEGIN: LEA SI,ARRAY
MOV DX,0 ;DX中用来存放输出结果
MOV AX,[SI]
MOV BX,[SI+2]
CMP AX,BX ;比较第一个数和第二个数是否相等
JNE NEXT1 ;不相等,跳到NEXT1执行
INC DX
NEXT1:CMP [SI+4],AX ;比较第一个数和第三个数是否相等
JNE NEXT2 ;不相等,跳到NEXT2执行
INC DX
NEXT2:CMP [SI+4],BX ;比较第二个数和第三个数是否相等
JNE NUM
INC DX
NUM:CMP DX,3
JL DISP
DEC DX
DISP:ADD DL,30H ;转换为ASCII码
MOV AH,2;
INT 21H ;
RET
MAIN ENDP
CSEG ENDS
编译出现错误
A2088 A4012 A2004